В данном репозитории находятся файлы для сборки образов Docker с платформой 1С:Предприятие 8.3.
Нужен регистри, например
docker run -d -p 5000:5000 --name registry --restart always -v local-registry-data:/var/lib/registry registry:2
Проверяем доступность регистри
curl -s -i -X GET http://registry.localhost:5000/v2/_catalog
Создайте файл .env
содержащий перменные среды
ONEC_USERNAME
иONEC_PASSWORD
- логин и пароль от информационно технологического сопровождения http://releases.1c.ruONEC_VERSION
- какую версию 1С использоватьEDT_VERSION
- какую версию ЕДТ использоватьDOCKER_
- доступный для пуша регистри для контейнеровDOCKER_SYSTEM_PRUNE
- очистить перед сборкой незапущенные локальные контейнеры, неиспользуемые запущенными контейнерами тома, неиспользуемые запущенными контейнерами образы, используйте с осторожностью
ONEC_USERNAME=0000000
ONEC_PASSWORD=password
ONEC_VERSION=8.3.25.1546
EDT_VERSION=2024.2.3
DOCKER_REGISTRY_URL=localhost:5000
DOCKER_LOGIN=login
DOCKER_PASSWORD=pass
Общая идея такая: у нас регистри - куда мы будем пушить чего насобирали
- строим YARD - это такой загрузчик дистрибутивов с сайта 1С
- запускаем простенький WEB-сервер который просто раздаёт файлы из каталога
distr
- для раздачи готовых дистрибутивов - получаем дистрибутив чего хотим построить с помошью YARD (он сохраняется в каталоге
distr
и оказывается в раздаче) - строим основной образ загружая дистрибутивы с нашего сервера
wget --recursive
.
чего на bat и sh - не проврял, проверял исправлял скрипты ps1, выполнение скриптов предполагается в корневой директории (там где они лежат), в другой - не будет работать
Вы можете использовать готовые дистрибутивы платформы, для этого достаточно разместить их в папке distr
. Скрипты будут автоматически использовать их для сборки образа.
При сборке ЕДТ 1ce-installer-cli ищется и сохраняется в каталоге distr/DevelopmentTools10/{ВЕРСИЯ}
, например distr/DevelopmentTools10/2024.2.3
, при сборке 1С *.run ищется и сохраняется в каталоге distr/Platform83/{ВЕРСИЯ}
например distr/Platform83/8.3.25.1546
- взять ваш файл nethasp.ini
- создать из него docker config командой
docker config create nethasp.ini ./nethasp.ini
- в Jenkins, в настройках Docker Agent templates у соответствующих агентов в параметре Configs указать
nethasp.ini:/opt/1cv8/current/conf/nethasp.ini
./build-edt.ps1
Пример использования, временная или нет рабочей области, файлы src проекта EDT находятся здесь D:\Projects\sample-onec-ws\sample-onec\edt-project\src
docker run --rm -v "D:\Projects:/home/projects" -v "C:\Temp:/tmp/work" localhost:5000/edt:2024.2.3 1cedtcli -data "/tmp/work/tmp-edt-ws" -command export --project "/home/projects/sample-onec-ws/sample-onec/edt-project" --configuration-files "/tmp/work/1-0-0-1-3df46495/"
в результате в C:\Temp\1-0-0-1-3df46495
имеем конфигурационные файлы в формате 1С
Пример использования, ранее созданная рабочая область находится здесь D:/Projects/slk-ws
, в рабочей области есть проект с именем acc3-edt
docker run --rm -v "D:\Projects:/home/projects" -v "C:\Temp:/tmp/work" localhost:5000/edt:2024.2.3 1cedtcli -data "/home/projects/slk-ws" -command export --project-name "acc3-edt" --configuration-files "/tmp/work/3-0-177-16-d9104849/"
в результате изредка в C:\Temp\3-0-177-16-d9104849
конфигурационные файлы в формате 1С
./build-server.ps1
пример использования:
docker run --rm localhost:5000/onec-server:8.3.25.1546 ibcmd --version
./build-client.ps1
пример использования обновление конфигурации базы данных:
docker run --rm -v "E:\Issues\sample-onec:/home/dbpath" localhost:5000/onec-client:8.3.25.1546 1cv8 DESIGNER /F"/home/dbpath" /UpdateDBCfg /DisableStartupDialogs /DisableStartupMessages /Out /home/dbpath/.log -NoTruncate
в файле E:\Issues\sample-onec\.log
- дописываются ошибки
./build-client-vnc.ps1
Для проверки запускаем, на порту 5900 например с помошью RealVNC видим запущенную среду, можно добавить базу из каталога /home/dbpath
docker run --rm -p 5900:5900 -v "E:\Issues\sample-onec:/home/dbpath" localhost:5000/onec-client-vnc:8.3.25.1546
./build-crs.ps1
Проверка: запустить
docker run --rm -v "C:\Temp\crs:/home/usr1cv8/.1cv8/crs" -p 1542:1542 localhost:5000/crs:8.3.25.1546
попробовать создать хранилище tcp://localhost:1542/sample-svn
./build-crs-apache.ps1
Проверка
docker run --rm -v "C:\Temp\crs:/home/usr1cv8/.1cv8/crs" -p 1548:80 localhost:5000/crs-apache:8.3.25.1546
ранее созданное хранилище должно быть доступно тут http://localhost:1548/crs/repo.1ccr/sample-svn
./build-pusk.ps1
Проверка: pusk/application.properties.example
положить в C:\Temp\pusk\data\application.properties
, в C:\Temp\pusk\log
- журналы
docker run --rm -v "C:\Temp\pusk\log:/opt/pusk/log" -v "C:\Temp\pusk\data:/opt/pusk/data" -p 8085:8080 localhost:5000/pusk:1.2.1
браузер localhost:8085 видим что-то хорошее, управление сервисами - не работает.