Предыдущие и будущие статьи:
- Часть 1. RabbitMQ
- Часть 2. Docker
- Часть 3. Журнал регистрации в ElasticSearch
- Часть 4. NoSQL (MongoDB, Redis)
- Часть 5. Обмен с 1С через HTTP-сервисы
- Часть 6. Докеризация, Начальная оркестрами, CD\CI
Я буду использовать 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