Skip to content

About

Файлы для сборки образов Docker c платформой 1С:Предприятие 8.3.

Topics

Resources

Stars

283 stars

Watchers

22 watching

Forks

 
 

Latest commit

 

History

403 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Описание

forthebadge

В данном репозитории находятся файлы для сборки образов Docker с платформой 1С:Предприятие 8.3.

Оглавление

Использование

В терминале введите:

Команда Linux:

# для Linux
$ cp .onec.env.example .onec.env
:: для Windows
copy .onec.env.bat.example env.bat

Скорректируйте файл .onec.env в соответствии со своим окружением:

  • ONEC_USERNAME - учётная запись на releases.1c.ru
  • ONEC_PASSWORD - пароль для учётной записи на releases.1c.ru
  • ONEC_VERSION - версия платформы 1С:Преприятия 8.3, которая будет в образе
  • EDT_VERSION - версия EDT. Обязательно заполнять только при сборке образов с EDT или при использовании замеров покрытия (см. COVERAGE41C_VERSION)
  • OPENJDK_VERSION - версия JDK (temurin)
  • DOCKER_REGISTRY_URL - Адрес Docker-registry в котором будут храниться образы
  • COVERAGE41C_VERSION - версия Coverage41C Используется при сборке агента скриптами build-base-*-jenkins-coverage-agent.*.
  • DEV1C_EXECUTOR_API_KEY - токен для api скачивания 1С:Исполнитель с сайта developer.1c.ru
  • EXECUTOR_VERSION - версия 1С:Исполнитель для сборки
  • TEST_UTILS_EXTRA_PACKAGES - дополнительные пакеты, которые будут установлены при сборке test-utils и которые будут доступны в финальном образе

Затем экспортируйте все необходимые переменные:

# для Linux
$ source .onec.env
:: для Windows
env.bat

Как сбилдить образы

☝️ Запустите последовательно скрипты для сборки образов.

  1. Если вам нужны образы для использования в docker-swarm:

    • build-base-swarm-jenkins-agent.sh (или build-base-swarm-jenkins-coverage-agent.sh с замерами покрытия)
    • build-edt-swarm-agent.sh
    • build-oscript-swarm-agent.sh
  2. Если же вы планируете использовать k8s:

    • build-base-k8s-jenkins-agent.sh (или build-base-k8s-jenkins-coverage-agent.sh с замерами покрытия)
    • build-edt-k8s-agent.sh
    • build-oscript-k8s-agent.sh
  3. Отдельные образы:

    • build-server.sh
    • build-crs.sh
    • build-executor.sh
    • build-sonar-scanner.sh

Как использовать готовые дистрибутивы

Вы можете использовать готовые дистрибутивы платформы, для этого достаточно разместить их в папке distr. Скрипты будут автоматически использовать их для сборки образа.

Как использовать образы в Jenkins в режиме Docker Swarm

Поддерживаемые плагины:

⚠️ ВНИМАНИЕ! При настройке шаблонов агентов в плагине Swarm Agents Cloud необходимо раскрыть раздел Advanced и установить флажок Disable Container Args.

Настройка nethasp.ini

  • взять ваш файл nethasp.ini
  • создать из него docker config командой docker config create nethasp.ini ./nethasp.ini
  • в Jenkins, в настройках Docker Agent templates у соответствующих агентов в параметре Configs указать nethasp.ini:/opt/1cv8/current/conf/nethasp.ini

Сервер

(Наверх)

docker build --build-arg ONEC_USERNAME=${ONEC_USERNAME} \
  --build-arg ONEC_PASSWORD=${ONEC_PASSWORD} \
  --build-arg ONEC_VERSION=${ONEC_VERSION} \
  -t ${DOCKER_REGISTRY_URL}/onec-server:${ONEC_VERSION} \
  -f server/Dockerfile .

Сервер с дополнительными языками

(Наверх)

docker build --build-arg ONEC_USERNAME=${ONEC_USERNAME} \
  --build-arg ONEC_PASSWORD=${ONEC_PASSWORD} \
  --build-arg ONEC_VERSION=${ONEC_VERSION} \
  --build-arg nls_enabled=true \
  -t ${DOCKER_REGISTRY_URL}/onec-server-nls:${ONEC_VERSION} \
  -f server/Dockerfile .

Клиент

(Наверх)

docker build --build-arg ONEC_USERNAME=${ONEC_USERNAME} \
  --build-arg ONEC_PASSWORD=${ONEC_PASSWORD} \
  --build-arg ONEC_VERSION=${ONEC_VERSION} \
  -t ${DOCKER_REGISTRY_URL}/onec-client:${ONEC_VERSION} \
  -f client/Dockerfile .

Клиент с поддержкой VNC

(Наверх)

docker build --build-arg DOCKER_REGISTRY_URL=${DOCKER_REGISTRY_URL} \
  --build-arg ONEC_VERSION=${ONEC_VERSION} \
  -t ${DOCKER_REGISTRY_URL}/onec-client-vnc:${ONEC_VERSION} \
  -f client-vnc/Dockerfile .

Клиент с дополнительными языками

(Наверх)

docker build --build-arg ONEC_USERNAME=${ONEC_USERNAME} \
  --build-arg ONEC_PASSWORD=${ONEC_PASSWORD} \
  --build-arg ONEC_VERSION=${ONEC_VERSION} \
  --build-arg nls_enabled=true \
  -t ${DOCKER_REGISTRY_URL}/onec-client-nls:${ONEC_VERSION} \
  -f client/Dockerfile .

SonarScanner

(Наверх)

Образ с SonarScanner CLI поверх слоёв client + jdk (без поддержки VNC). Java предоставляется слоем jdk, автоскачивание JRE с сервера отключено (SONAR_SCANNER_SKIP_JRE_PROVISIONING=true). SonarScanner CLI 8.x требует Java 21+, поэтому скрипт сборки собирает слой jdk с JDK 25 (SONAR_JDK_VERSION, по умолчанию 25). Для сборки всей цепочки слоёв (client → jdk → sonar-scanner) используйте скрипт build-sonar-scanner.sh (или build-sonar-scanner.bat в Windows).

Либо вручную, поверх уже собранного образа onec-client (см. раздел Клиент) — сначала слой jdk, затем sonar-scanner:

# слой jdk поверх client
docker build --build-arg DOCKER_REGISTRY_URL=${DOCKER_REGISTRY_URL} \
  --build-arg BASE_IMAGE=onec-client \
  --build-arg BASE_TAG=${ONEC_VERSION} \
  --build-arg OPENJDK_VERSION=25 \
  -t ${DOCKER_REGISTRY_URL}/onec-client-jdk:${ONEC_VERSION} \
  -f jdk/Dockerfile .

# слой sonar-scanner поверх client + jdk
docker build --build-arg DOCKER_REGISTRY_URL=${DOCKER_REGISTRY_URL} \
  --build-arg BASE_IMAGE=onec-client-jdk \
  --build-arg BASE_TAG=${ONEC_VERSION} \
  -t ${DOCKER_REGISTRY_URL}/onec-sonar-scanner:${ONEC_VERSION} \
  -f sonar-scanner/Dockerfile .

Тонкий клиент

(Наверх)

docker build --build-arg ONEC_USERNAME=${ONEC_USERNAME} \
  --build-arg ONEC_PASSWORD=${ONEC_PASSWORD} \
  --build-arg ONEC_VERSION=${ONEC_VERSION} \
  -t ${DOCKER_REGISTRY_URL}/onec-thin-client:${ONEC_VERSION} \
  -f thin-client/Dockerfile .

Тонкий клиент с дополнительными языками

(Наверх)

docker build --build-arg ONEC_USERNAME=${ONEC_USERNAME} \
  --build-arg ONEC_PASSWORD=${ONEC_PASSWORD} \
  --build-arg ONEC_VERSION=${ONEC_VERSION} \
  --build-arg nls_enabled=true \
  -t ${DOCKER_REGISTRY_URL}/onec-thin-client-nls:${ONEC_VERSION} \
  -f thin-client/Dockerfile .

Хранилище конфигурации

(Наверх)

docker build --build-arg ONEC_USERNAME=${ONEC_USERNAME} \
  --build-arg ONEC_PASSWORD=${ONEC_PASSWORD} \
  --build-arg ONEC_VERSION=${ONEC_VERSION} \
  -t ${DOCKER_REGISTRY_URL}/onec-crs:${ONEC_VERSION} \
  -f crs/Dockerfile .

rac-gui

(Наверх)

docker build --build-arg DOCKER_REGISTRY_URL=${DOCKER_REGISTRY_URL} \
  --build-arg ONEC_VERSION=${ONEC_VERSION} \
  -t ${DOCKER_REGISTRY_URL}/onec-rac-gui:${ONEC_VERSION}-1.0.1 \
  -f rac-gui/Dockerfile .

gitsync

(Наверх)

docker build --build-arg DOCKER_REGISTRY_URL=${DOCKER_REGISTRY_URL} \
  --build-arg ONEC_VERSION=${ONEC_VERSION} \
  -t ${DOCKER_REGISTRY_URL}/gitsync:3.0.0 \
  -f gitsync/Dockerfile .

oscript

(Наверх)

docker build --build-arg DOCKER_REGISTRY_URL=${DOCKER_REGISTRY_URL} \
  --build-arg ONEC_VERSION=${ONEC_VERSION} \
  -t ${DOCKER_REGISTRY_URL}/oscript:1.0.21 \
  -f oscript/Dockerfile .

vanessa-runner

(Наверх)

docker build --build-arg DOCKER_REGISTRY_URL=${DOCKER_REGISTRY_URL} \
  -t ${DOCKER_REGISTRY_URL}/runner:1.7.0 \
  -f vanessa-runner/Dockerfile .

EDT

(Наверх)

docker build --build-arg ONEC_USERNAME=${ONEC_USERNAME} \
    --build-arg ONEC_PASSWORD=${ONEC_PASSWORD} \
    --build-arg EDT_VERSION=${EDT_VERSION} \
    -t ${DOCKER_REGISTRY_URL}/edt:${EDT_VERSION} \
    -f edt/Dockerfile .

Исполнитель

(Наверх)

./build-executor.sh

Собирать обязательно через запуск скрипта, так как в нём реализован безопасный проброс секретов в окружение сборки

About

Файлы для сборки образов Docker c платформой 1С:Предприятие 8.3.

Topics

Resources

Stars

283 stars

Watchers

22 watching

Forks

Releases

Packages

Contributors

Languages