Полный пример запуска 1С в докере (Linux)

17.10.22

Разработка - DevOps и автоматизация разработки

Описание примера запуска сервера 1С в докере на CentOS 7. Содержит архив со скриптами и последовательность шагов для запуска тестового сервера (Сервер, Клиент, Web и простой консоли управления информационными базами).

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Скрипты запуска 1С в докере (Linux)
.tar 69,50Kb
66
66 Скачать (1 SM) Купить за 1 850 руб.
Скрипты запуска 1С в докере (Astra Linux)
.rar 26,22Mb
10
10 Скачать (1 SM) Купить за 1 850 руб.

В сети и на infostart.ru, в частности, много материалов по теории и примерам настройки сервера 1С в Docker окружении. Не буду цитировать экспертов и приводить ссылки, тем более что уже сложно понять какой материал в какой момент и откуда использовался. Если кто-то посчитает отдельные блоки «плагиатом», то прошу извинить и сообщить, обязательно вставлю ссылку. Сложно быть оригинальным, когда столько умных людей уже делились своими мыслями. В данной статье нет теории, нет ответов зачем это нужно и какие еще существуют варианты, а рассмотрена конкретная последовательность действий. Это статья родилась как желание закрепить опыт пошагового запуска для коллег и всех интересующихся.

Исходные данные:

Виртуальный сервер RAM 8Gb HDD 40Gb Linux CentOS 7 x64

Что ставим:

  • Docker CE 20.10 (последний на момент написания статьи)
  • Ubuntu 18.04 (Bionic)
  • 1С - 8.3.17.1851 (лично проверял 8.3.13, 15, 17)

Какие контейнеры создаем:

 
 Характеристики
  • Host data.local
  • Port 5432
  • Администратор postgres/postgres
  • 1c-server – Сервер 1С Предприятие 8.3.17.1851
 
 Характеристики
  • Host srv.local
  • Port 1540, 1541, 1545, 1560-1591
  • Простой веб-сервер для скачивания и загрузки дампов информационных баз
  • SSH сервер (22 порт, root/q123Q123)
  • VNC сервер (http://<адрес>:5900)
  • JDK 11 для разворачивания агента КИП
  • Отладка на сервере 1С по умолчанию разрешена
  • 1c-web – Веб сервер 1С Предприятие 8.3.17.1851
 
 Характеристики
  • Host web.local
  • Port 80
  • по умолчанию прописана база «test»
 
  • dashboard-app – Простое веб приложение для базового управления информационными базами на сервер
 
 Характеристики
  • Host dashboard.local
  • Port 3000
  • Portainer – Приложение для управления контейнерами
 
 Характеристики
  •  Port 9000

Общий порядок шагов

1. Установка docker (см.https://docs.docker.com/engine/install/centos/)

(перепечатка с сайта) (возможна установка на Astra Linux, проверял на Орел, если потребуется дам информацию)

yum install -y yum-utils
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum install -y docker-ce docker-ce-cli containerd.io
systemctl start docker
systemctl enable docker

2. Копируем папку (scp / ftp / ....) из прикрепления в рабочую папку сервера, например в /home, и распаковываем архив

cd /home
tar -xf 1cserver.tar

3. Для базового управления контейнерами неплохой инструмент portainer (см. https://www.portainer.io/) 

Будет запущен на порту 9000, можно после установки подключиться по адресу - http://<адрес сервера>:9000 для контроля последующих шагов.

cd /home
./portainer.sh

4. Копируем файлы установки 1с с сайта 1С в папку /home/dist

Много раз обсуждалось почему нельзя выкладывать дистрибутивы 1С, повторяться не буду. Нужно самостоятельно скачать с сайта 1С дистрибутивы платформы и клиента (см. https://releases.1c.ru/version_files?nick=Platform83&ver=8.3.17.1851)

- Будем считать, что скачали «Сервер 1С:Предприятия (64-bit) для DEB-based Linux-систем» - deb64_8_3_17_1851.tar.gz

- Будем считать, что скачали «Клиент 1С:Предприятия (64-bit) для DEB-based Linux-систем» - client_8_3_17_1851.deb64.tar

5. Распаковываем файлы установки и копируем в контейнеры

cd /home/dist

tar -xvf deb64_8_3_17_1851.tar.gz
tar -xvf client_8_3_17_1851.deb64.tar

cp -R ./ ./../1cserver-8.3.17/dist
cp -R ./ ./../1cserver-8.3.17-web/dist

6. Собираем образы контейнеров

cd /home
./build-images.sh

если все собралось, то в portainer должны появиться образы, примерно так:

 
 Пример экрана

7. Поднимаем контейнеры и запускаем

cd /home
./recreate-server.sh
./run.sh

если ошибок не возникло, то в portainer должны появиться запущенные контейнеры, примерно так:

 
 Пример экрана

Последующие шаги

1. Консоль администрирования 1С

К поднятому серверу можно подключиться через стандартную консоль управления серверами 1С. Кластер доступен по адресу сервера.

 
 Пример экрана

2. Приложение для базового управления

Можно подключиться к приложению управления по адресу http://<адрес сервера>:3000

- Упрощенное создание, удаление, импорт и экспорт информационных баз

- Открытие VNC консоли

 
 Пример экрана

3. VNC консоль

Можно подключиться к VNC консоли http://<адрес сервера>:6080/

 
 Пример экрана

Использование VNC целесообразно в отладочных целях, т.к. часто «отваливается», помогает перезагрузка контейнера 1c-server. Причины «падения» понятны, но настроить автоматический перезапуск VNC-сервера, без перезагрузки контейнера пока не удалось.

4. Локальная станция

Для корректно работы нужно прописать адрес сервера на DNS-сервере предприятия или в локально дописать в файл \Windows\System32\drivers\etc

<адрес сервера> srv.local

После создания информационной базы к ней можно подключаться любым способом: конфигуратор, клиент толстый/тонкий/web.

Установка лицензий 1С штатная через Клиента или Конфигуратор. Возможно использовать внешний сервер лицензирования.

Дополнение:

Если требуется изменить версии, порты, адреса, пароли, явки и т.д. или получить более детальную информацию нужно смотреть (изменять) в файлах архива. Затем пересобирать образы и пересоздавать контейнеры. Можно без пересоздания контейнеров (в т.ч. в живую) смотреть, изменить ряд данных в контейнерах, например логи, скрипты и т.д. Примонтированные разделы лежат в папке /var/lib/docker/volumes.

Возможно какие-то вопросы не отражены, с удовольствием отвечу на вопросы.

Прошу экспертов сильно не ругаться, сделано для личного пользования и возможно не сильно оптимально. У нас практически все сервера переведены на контейнеры, по аналогичной технологии.

Внимание !!!

Еще раз напомню, все описанное в статье нужно делать в тестовой среде! Крайне не рекомендую переносить на рабочий контур без модификации, полного понимания рисков и последствий.

UPD: добавлена информация про запуск в Astra Linux (Орел)

Архив - docker_Astra_1c_8_3_20.rar

OS - Astra Linux 2.12 

1c - 8.3.20.2039

DB - Postgres 9.6

Скачиваем с сайта 1с сервер и агент (при необходимости)

  • server64_8_3_20_2039.tar.gz -> /1c.8.3.20/server/
  • agentetp_1.0.34.51_all.deb -> /1c.8.3.20/agentetp/

В папке /1c.8.3.20 настраиваем под себя Dockerfile. В примере 3 секции - Агент ETP, Web-сервер, 1c-сервер. Если секция не нужна, то удаляем или комментируем.

Чуть подробней про файлы.

Папка /1c.8.3.20/server/:

  • logcfg.xml - настройка логов 1С во внешнюю папку и настройка типов событий
  • nethasp.ini - настройка если используется сервер лицензий 

Папка /1c.8.3.20/http/:

  • apache2.conf - конфигурация веб-сервера
  • http-services.conf - публикация баз 1с, добавляем по аналогии свои по необходимости
  • sites - папка для файлов публикации баз

Папка /1c.8.3.20/agentetp/:

  • conf.cfg - настройка агента
  • settings.xml - настройка агента
  • python.tar - python для запуска скриптов

Папка /base-astra/:

  • build-docker-image.sh - скрипт создания образа astra linux с официального сайта

Папка /:

  • build-images.sh - скрипт создания образов docker
  • docker-compose.yml - пример контейнеров, нужно изменить пути и т.д. под собственное окружение

Подготовка к запуску:

1. Распаковываем папку docker_Astra_1c_8_3_20.rar любым удобным способ на сервере, например /home/docker

2. Скачиваем файлы сервера и агента (при необходимости) с сайта 1с и копируем в /home/docker/1c.8.3.20/server/ и /home/docker/1c.8.3.20/agentetp/ (см.выше)

3. Проверяем пути и настройки в файлах (см.выше)

4. Запускаем сборку образов /home/docker/build-images.sh

5. Создаем папки для хранения данных, например в папке /mnt/data:

  • /mnt/data/1c-data - файлы базы данных postgres
  • /mnt/data/1c-server - файлы кластера
  • /mnt/data/ibfilestore - файлы для хранилища файлов (если используются тома)
  • /mnt/data/exchange - файлы для файлового обмена (если есть обмены между базами)
  • /mnt/data/backup - папка для сохранений (например сохранения делаются через Агента ETP)
  • /mnt/data/1c-log - папка с логами 1с
     

6. Запускаем контейнеры из папки /home/docker/ -> docker-compose up -d

7. Создание баз через консоль управления серверами (1CV8 Servers (x86-64).msc), (сервер БД - 1c-data, пользователь и пароль postgres)

8. Для подключения клиентов вносим имя хоста контейнера (srv0504.server - в примере из docker-compose.yml) в C:\Windows\System32\drivers\etc\hosts или в dns-сервер.

 

В целом все, если что-то не указал, напишите..

Docker Докер Astra Linux

См. также

DevOps для 1С DevOps и автоматизация разработки Программист Стажер Платные (руб)

Данный онлайн-курс (интенсив) предусматривает изучение процессов, инструментов и методик DevOps, их применение при разработке на платформе 1С. 

2500 руб.

20.06.2023    22273    2    4    

310

SALE! 50%

1С-программирование DevOps и автоматизация разработки Групповая разработка (Git, хранилище) DevOps для 1С Программист Стажер Платформа 1С v8.3 Платные (руб)

Использования систем контроля версий — стандарт современной разработки. На курсе научимся использованию Хранилища 1С и GIT при разработке на 1С:Предприятие 8. Разберем подходы и приемы коллективной разработки, научимся самостоятельно настраивать системы и ориентироваться в них.

4900 2450 руб.

29.06.2022    11934    99    4    

131

DevOps и автоматизация разработки Тестирование QA Программист Пользователь Платформа 1С v8.3 1С:Зарплата и Управление Персоналом 3.x Россия Бухгалтерский учет Платные (руб)

Автотесты 1С - готовые тестовые сценарии, предназначенные для регресс-тестирования функционала конфигурации после обновления типовым релизом. Сценарии проверяют интерактивное заполнение форм документов, справочников и результат проведения документов. Сценарий – feature-файл, разработанный с помощью vanessa-automation. Запуск сценария выполняется интерактивно с помощью vanessa-automation или с помощью vanessa-runner в CI-системах. Доступно тестирование тонкого клиента. Поддерживаемые версии конфигураций 1С:Зарплата и Управление Персоналом 3 и версии КОРП: 3.1.30.57.

2160 руб.

05.08.2024    1280    12    1    

7

DevOps и автоматизация разработки Логистика, склад и ТМЦ Системный администратор Программист Руководитель проекта Платформа 1С v8.3 Конфигурации 1cv8 1С:Франчайзи, автоматизация бизнеса Платные (руб)

Подсистема «Управление сборкой GLI» предназначена для динамического формирования сборочных линий Gitlab и отслеживания процесса доработок систем на базе1С:Предприятия Позволяет упростить выпуск новых релизов системы, подготовить описание доработок системы. Интегрируется с GitLab API по событиям Push, Merge-request, Pipeline. Уведомляет пользователей о результатах сборки/тестирования сборочных конвейеров через СВ, либо при её недоступности или отсутствию по E-Mail. Поможет при отправке исправлений ошибок в общую базу тестирования, сформирует запросы на слияние в ветку версии только по протестированному и подтверждённому функционалу. Подсистема рассчитана исключительно на клиент - серверную архитектуру тестовых ИБ. Поддерживаемая версии СППР 2.0.4.15, платформа не ниже 8.3.17.1549, 2.0.7.3 / не ниже 8.3.21.1664, начиная с релиза 1.0.4.30 требуется платформа не ниже 8.3.23 рекомендуемый релиз 8.3.23.1997

7000 руб.

26.08.2022    12557    10    10    

35

Тестирование QA DevOps и автоматизация разработки Программист Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Комплексная автоматизация 2.х Россия Бухгалтерский учет Налоговый учет Платные (руб)

Готовые тестовые сценарии, предназначенные для регресс-тестирования функционала конфигурации после обновления типовым релизом. Сценарии проверяют интерактивное заполнение форм документов, справочников и результат проведения документов. Сценарии возможно использовать как для vanessa-automation, так и для СППР. Поддерживаемые версии конфигураций ERP2 и КА2: 2.5.17.113.

2400 руб.

04.07.2022    8368    38    1    

29

Тестирование QA DevOps и автоматизация разработки Программист Пользователь Платформа 1С v8.3 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Налоговый учет Платные (руб)

Автотесты 1С - готовые тестовые сценарии, предназначенные для регресс-тестирования функционала конфигурации после обновления типовым релизом. Сценарии проверяют интерактивное заполнение форм документов, справочников и результат проведения документов. Сценарий – feature-файл, разработанный с помощью vanessa-automation. Запуск сценария выполняется интерактивно с помощью vanessa-automation или с помощью vanessa-runner в CI-системах. Доступно тестирование тонкого клиента. Поддерживаемые версии конфигураций 1С:Бухгалтерия предприятие 3.0 и версии КОРП: 3.0.156.30.

1800 руб.

20.01.2022    7783    19    0    

13

DevOps и автоматизация разработки Программист Платформа 1С v8.3 Бесплатно (free)

В проектной разработке часто возникают проблемы с однообразностью ландшафта, производительностью и быстрой разверткой инфраструктуры. Об одном из способов избежать или изолировать данные проблемы с помощью контейнеризации расскажем в статье.

18.09.2024    1730    antonov_av    6    

14

DevOps и автоматизация разработки Бесплатно (free)

Когда информационная база «весит» несколько десятков/сотен гигабайт, для разработки и тестирования обычно используют полную копию рабочей базы. Но если информационная база превышает несколько терабайт, такой подход сталкивается с нехваткой места на диске, долгой реструктуризацией, замедленной скоростью работы и другими проблемами, связанными с размером базы. В статье расскажем, как правильно готовить копии больших баз для разработки и тестирования.

28.08.2024    6589    yuraid    28    

50
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Andry.Boris 59 27.01.21 00:16 Сейчас в теме
Спасибо, статья интересная.
Похоже на записки кулинара и книги рецептов.

Но не раскрыта роль начальных данных.

Исходные данные:
Виртуальный сервер RAM 8Gb HDD 40Gb Linux CentOS 7 x64
Что ставим:
Ubuntu 18.04 (Bionic)

Что к чему и для чего CentOS и Ubuntu?

Я навичок в этой теме. Просьба не ругать за офтопик.
2. user1543979 11.02.21 19:55 Сейчас в теме
(1)на убунте - доекер
на центосе - 1с
3. user1543979 11.02.21 20:03 Сейчас в теме
хотя стоп.
автор говорит про убунту , а выполняет команды "yum"

всё ок?
4. portwein 23.08.21 11:53 Сейчас в теме
(3) Ubuntu разворачивается в контейнере. Контейнер крутится в докере, докер установлен на Centos - поэтому yum!
5. пользователь 08.12.21 16:19
Сообщение было скрыто модератором.
...
6. None546674 06.06.22 16:44 Сейчас в теме
Есть у кого в продакшене это решение?
Хотел бы проконсультироваться
7. uasy_user611066 41 06.06.22 17:16 Сейчас в теме
(6) У нас работает, пишите, постараюсь помочь если получится.
8. None546674 07.06.22 12:50 Сейчас в теме
(7) Вообще интересует 3 вопроса
1) БД у вас в контейнере? Если да, то что по производительности? Не сталкивались с критичными багами?
2) Как организовано лицензирование? Это отдельный сервер лицензирования?
3) В целом сталкивались с каким-либо трудностями в начале и процессе эксплуатации?
9. uasy_user611066 41 07.06.22 13:51 Сейчас в теме
(8) 1. Производительность сильно зависит от железа, лучше всего перед промом провести нагрузочное тестирование или хотя-бы замеры по Гилеву. На тестовых серверах в офисе падение производительности составляло примерно на 10-15%. На сколько это критично, нужно оценивать индивидуально. Если критично, то СУБД можно вынести за контур докера или даже на другую машину.
2. Лицензии серверные программные, установлены стандартным образом в папку внутри контейнера. Клиентские, есть где-то аппаратные на отдельных машинах (виртуальных), есть где-то так-же программные на сервере лежат.
3. Проблемы были с соединением клиентов через закрытую сеть, заказчик делал предположения что виноват docker, но так-как основная масса работала штатно, но гипотезу сняли и рекомендовали заказчику привести подключение к ЗСПД к одному стандарту, а не как у кого получилось. Также были проблемы при установке на закрытую Астру ("Смоленск") из-за мандатного доступа, не оказалось специалистов у заказчика по ее администрированию, а нам не давали доступ из-за соображений безопасности. Что-то еще серъезного особо не припомню..

Общее впечатление пока хорошо. Самое главное не связаны руки со стороны "живой" системы, нужен минимальный доступ для администрирования контейнеров и нет необходимости разбираться с зависимостями разных библиотек. Сейчас внутри контейнера с 1С используется Ubuntu 18, готовим образ для перехода Астру. Из-за того что данные кластера и БД хранятся "снаружи" контейнеров, очень легко сохранять, переносить, пересоздавать и т.д. Также удобно масштабировать (создание контейнеров на другой машине или этой-же но с другим составом портов и включением в кластер). Неизбежна потеря производительности, но нужно искать компромиссы..
10. user1811975 09.07.22 15:28 Сейчас в теме
11. uasy_user611066 41 25.07.22 08:52 Сейчас в теме
(10) Внутри присоединенного архива...
13. пользователь 26.07.22 23:23
Сообщение было скрыто модератором.
...
12. пользователь 26.07.22 23:21
Сообщение было скрыто модератором.
...
14. user1860333 17.10.22 11:45 Сейчас в теме
Здравствуйте , нужна информация по установке на Асра линукс Докера ,как можено ее получить? Заранее благодарю
15. uasy_user611066 41 17.10.22 14:00 Сейчас в теме
(14)
Добрый день. Добавил информацию о запуске и файл архива со скриптами.
16. user1905092 06.02.23 11:30 Сейчас в теме
У www.portainer.io/ весьма не гуманные расценки

по конфигам не плохо бы завернуть все в nginx, чтобы не светить внутренней сетью контейнера наружу
ну и в SSL обернуть
Оставьте свое сообщение