TGViewer
cloudnative-1c | Овчаренко Дмитрий cloudnative-1c | Овчаренко Дмитрий @cloudnative_1c · 259 subscribers
Post #24 214
🐳 Как обещал, в этот раз будем собирать образ с сервером 1С.

Почему нельзя взять готовый образ, как для nginx? Потому, что nginx распространяется свободно, а платформа 1С - нет. Образы с платформой 1С нельзя публиковать в общем доступе. Кстати, может кто-то и пушит образы в публичные репозитории, но он явно делает это не подумавши.

Правильное решение такое: взять свой логин и пароль от ИТС, клонировать себе проект onec-docker и собрать образ самостоятельно.
Я подготовил детальные инструкции по сборке в своем репозитории, см. тут: 02-1c-docker-image.
Кстати, во время подготовки этого поста мне пришлось доработать скрипты в проекте onec-docker, чтобы образы можно было собирать локально, без Docker Registry.

После выполнения инструкций у вас получится образ с сервером 1С.
Предлагаю его немножко препарировать. Полезно знать, с чем имеешь дело.

Сразу иду в самый конец server/Dockerfile и вижу это:

# Настройка точки входа и экспонирование портов
ENTRYPOINT ["/usr/local/bin/docker-entrypoint.sh"]
EXPOSE 1540 1541 1545 1560
CMD ["ragent"]


Что интересно в этом фрагменте:

🔘 ENTRYPOINT устанавливается из файла docker-entrypoint.sh, его рассмотрим далее
🔘 в EXPOSE не перечислены все порты рабочих процессов из стандартного диапазона, но это нужно больше для красоты
🔘 в CMD ["ragent"] означает, что в скрипт docker-entrypoint.sh будет передан параметр "ragent"

Ок, что интересного внутри docker-entrypoint.sh?

🔘 по умолчанию скрипт запускает процессы ragent и ras
🔘 ragent запускается через exec, то есть он станет PID 1. А это значит, что контейнер скорее всего будет корректно обрабатывать сигналы типа SIGTERM. Это очень правильный подход, это мы одобряем.
🔘 ragent и ras запускаются через gosu от имени usr1cv8, что тоже является хорошей морской практикой
🔘 все стандартные параметры запуска ragent и ras устанавливаются по умолчанию, но могут быть переопределены
🔘 в CMD можно вместо параметра "ragent" передать свою команду

Что еще в этом образе:

🔘 сборка состоит из нескольких этапов и финальный образ построен на минималистичном debian:bookworm-slim
🔘 добавлен симлинк /opt/1cv8/current, что *капец* как удобно

В общем, образ мне нравится, огромное спасибо автору - Егору Иванову и всем, кто приложил руку к onec-docker. Да и мне самому тоже, чего уж там 😅

Единственное, что немного смущает: в таком контейнере не соблюдается принцип one service per container, потому что помимо сервера 1С в нем будет работать и ras, который в общем случае можно запустить отдельно. Но этот принцип - это тоже не догма и пока что это все вообще не принципиально. Сейчас игнорируем, но на будущее запомним.

Образ есть, в следующий раз засунем его в... (гусары, молчать!) kind и запустим 😁

PS: параллельно занимаюсь полировкой нового релиза gitsync, версия 3.7.0 уже почти готова.
  • 🔥 3
  • ❤ 1
  • 👍 1
More from @cloudnative_1c
  1. Jan 17, 2026Вчера произошло столкновение моего стенда с чугунной жопой реальности 😁 Ничего особо стра…
  2. Jan 13, 2026Продолжаю переписываться с поддержкой 1С по поводу того, что сервер не выдает клиенту комь…
  3. Jan 10, 2026👋 Всем привет! Потихоньку вливаемся в рабочий режим! На каникулах мне пришлось организова…
  4. Dec 31, 2025По многочисленным 😅 просьбам комментаторов в предыдущем посте, напишу, что у меня было са…
  5. Dec 30, 2025⚡️Подробности про установку 1С в кластер Kubernetes Манифесты для серверов 1С у меня уже б…
  6. Dec 28, 2025🎉 TA-DAAAA! Это самое долгожданное сообщение об ошибке лицензирования за всю мою карьеру…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →