Взаимодействие 1С со сторонними продуктами посредством REST и Golang (middleware). Часть 2 - Docker

18.06.21

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

В предыдущей статье мы создали микросервис, сейчас мы поместим его в Docker контейнер. Статья будет иметь практическую направленность в минималистичном стиле

Предыдущие и будущие статьи:

Я буду использовать Docker Desktop для Windows (учтите что на Home версию он не установится) переводим установленный Docker в режим Linux контейнеров. Используем иконку в системной трее

 

Крутые админы используют для настройки командную строку, но для визуализации структуры и простоты используем GUI Kitematic

Нажимаем кнопку New и добавляем по поиску интересующий нас контейнер например так

Для создания своего контейнера с митросервисом из статьи 1, нам нужен специализированный Dockerfile в котором будет прописаны настройки, а также софт-окружение который будет установлен в контейнер. Тут стоит заменить что контейнер это минимальная сборка ОС, на которую мы "доставляем" свой софт.

Содержимое Dockerfile

Коротко, берем образ с окружением среды разработки Go, скачиваем наш микросервис и зависимые пакеты, компилируем, запускаем, открываем порт 8181.  

Билдим контейнер, видно как выполняется поэтапно каждая инструкция Dockerfile (команды есть в исходниках на GitHub)

Запускаем контейнер, пробрасываем порт, указываем имя.

Контейнер появился в списке активных

 

Теперь микросервис доступен по порту 8181

К сожаление я не смог настроить взаимодействия контейнеров флагами в команде run при запуске контейнера (кто подскажет буду рад), но можно это сделать в GUI, чтобы микросервис видел другой контейнер с RabbitMQ

Остается опубликовать созданный контейнер в docker hub, заходим в учетную запись на сайте https://hub.docker.com/ создаем новый репозиторий

Задаем имя, подключаем к GitHub учетной записи, создаем

Запускаем построение контейнера в Docker Hub

Можно настроить автоматическую сборку контейнера например при изменениях в GitHub репозитории.

После публикации можно установить контейнер путем поиска в GitHub или командой docker run dmitrymsk777/connector_1c_enterprise

На данный момент Docker Hub не собирает корректно контейнер, так как система логирования в микросервисе написана под Windows, т.к разрабатываю я под Windows, но контейнер основан ли Unix-подобной ОС. На данный момент думаю как переделать скоро поправлю. Ранее публиковал более простой контейнер, схема рабочая.

Адрес исходников DockerFile на GitHub https://github.com/dmitry-msk777/Connector_1C_Enterprise

ОБНОВЛЕНИЕ:

Образ доступе в Docker Hub как на сайте так и в GUI Kitematic

ОБНОВЛЕНИЕ: 28.09.2020

Описанный в статье проект, который разворачивался находится в ветке "RabbitMQ+DockerFile"

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

ОБНОВЛЕНИЕ: 18.06.2021

Сейчас для управления докером в виде графического интерфейса пользуюсь Portainer 

Можно использовать для одиночно установленного докера, для докера в режиме Swarm и для Kubernetes

Вступайте в нашу телеграмм-группу Инфостарт

Golang RabbitMQ REST API middleware Docker DokerHub

См. также

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

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

3600 руб.

05.08.2024    4746    28    1    

17

DevOps и автоматизация разработки Логистика, склад и ТМЦ Системный администратор Программист Руководитель проекта 1С:Предприятие 8 1C:Бухгалтерия 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

10000 руб.

26.08.2022    15296    11    13    

37

DevOps и автоматизация разработки Системный администратор Программист Бесплатно (free)

Rundeck – это бесплатный и мощный оркестратор, «пульт управления», который помогает автоматизировать рутинные операции и внедрить DevOps/GitOps-подход в экосистеме 1С. Объясняем, как с его помощью упростить администрирование, отказаться от cron-скриптов и ручных SSH-подключений, централизовать управление серверами и снизить риски человеческого фактора. Показываем на практике примеры: как создать job, настроить workflow для закрытия месяца, установить платформу 1С через Jumphost и Ansible, а также запускать PowerShell-скрипты и Ansible-модули напрямую из Rundeck. Статья пригодится архитекторам, администраторам и DevOps-инженерам, которые стремятся превратить инфраструктуру 1С в управляемую, безопасную и полностью автоматизированную систему.

17.12.2025    2287    aidar_safin    0    

16

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

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

08.10.2025    2556    komil4    12    

11

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

Вы собрали свой первый пайплайн на базе Gitlab CI? Поздравляю, вы молодец! Но что делать, когда количество проектов начинает расти? Как быть с проблемами окружения, долгим выполнением сборки и дополнительными трудозатратами по поддержке скриптов? Расскажем о подготовке образов для запуска заданий в контейнерах, оптимальных настройках gitlab-раннеров, приемах повышения скорости выполнения заданий при работе с EDT, использовании CI/CD components для дедупликации кода пайплайна и выпуске артефактов релизов, используя Gitlab Package Registry и Releases.

19.09.2025    2744    DAAbramov    5    

10

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

Облачные технологии и DevOps кардинально меняют подход к разработке на платформе 1С:Предприятие. Делимся реальным опытом построения CI/CD-конвейера в GitLab: от сборки и тестирования с YAxUnit и Vanessa Automation до интеграции с SonarQube и безопасного развертывания в продакшен. Вы узнаете, как с помощью Docker и автоматизации превратить рутину в предсказуемый и надежный процесс, сократив риски и освободив время для решений, которые действительно требуют вашего профессионализма.

18.08.2025    3813    ComboBoy    0    

6

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

Задумывались ли вы, сколько времени разработчики тратят не на код, а на рутинные действия – от настройки окружения до поиска ответственных и документации? Эта статья о том, как найти и устранить «ерунду», которая тормозит процесс и раздражает на каждом этапе разработки. Разбираемся, как с помощью автоматизации, чек-листов и правильных процессов сделать разработку комфортной, эффективной и даже приятной.

18.08.2025    5165    mrXoxot    1    

20

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

Так сложилось, что чаще всего для целей CI/CD в проектах 1С применяется Jenkins и чуть реже GitLab CI. Но существует множество других решений для построения сборочных контуров. Ниже речь пойдет о применении решения Azure DevOps в проектах на 1С. В основе – реальный кейс, шаблоны, инструменты и собственные расширения.

15.08.2025    2526    ktb    0    

12
Для отправки сообщения требуется регистрация/авторизация