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

Публикация № 1368214

Методология - DevOps - docker

Docker Докер

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

В сети и на 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.

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

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

Внимание !!!

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

Скачать файлы

Наименование Файл Версия Размер
Скрипты запуска 1С в докере (Linux)

.tar 69,50Kb
8
.tar 69,50Kb 8 Скачать

Специальные предложения

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. Andry.Boris 58 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"

всё ок?
Оставьте свое сообщение

См. также

1С в Windows docker контейнерах

Администрирование данных 1С docker v8 Абонемент ($m)

Создаем Docker-контейнер для windows-версии 1C. Контейнеры позволяют подготовить рабочую среду на любой актуальной версии windows. Благодаря данной технологии можно беспрепятственно запускать требуемую версию сервера 1С или несколько серверов различных версий на одном сервере.

1 стартмани

02.10.2018    28116    43    lishniy    40