Как клонировать Docker-сервис в новый (Docker Swarm) - PullRequest
0 голосов
/ 19 мая 2018

Я использую Docker Swarm и Portainer.

Для тестирования сервисов с разными изображениями мне нужно клонировать сервис Docker Swarm, все хосты, монтирования, метки, секреты и т. Д. Также должны быть в новом сервисе.,Это трудно сделать вручную, потому что некоторые сервисы могут иметь много переменных среды, и Portainer не сильно помогает мне в этом.

Мне нужно клонировать весь мой сервис website_develop и запустить его в другомОбраз хоста и докера Traefik.


Рассказ о

Мои сервисы Docker Swarm основаны на ветке репо.

Например: репозиторий сайта имеет следующие сервисы: website_master,website_develop.

Я должен иметь возможность клонировать сервис website_develop и выполнить его с помощью функции / ветви.

Разработчик A (он же DA) работает над функцией / a в проекте веб-сайта.

Разработчик B (он же DB) работает над функцией / b в проекте сайта.

DA только что слил свою функцию с промежуточной средой (website_develop), потому что все готово.

БД хочет проверить свою функцию в промежуточной среде.Но он не может объединиться с website_develop, потому что он будет объединен с master, но не будет выполнен, что приведет к ошибкам (DB скоро объединится с master в мастер).

GDSC клонирует сервис website_develop с новым именем на основеимя ветви с новым URL-адресом образа докера и новым хостом Traefik.

БД публикует свою функцию / a в репозитории (функция публикации потока Git).

Репозиторий Git (gitlab, github) будетвызвать Jenkins с обновлением.

Jenkins создаст Dockerfile, а затем создаст новый сервис или обновит созданный сервис.

1 Ответ

0 голосов
/ 19 мая 2018

GDSC (Go Docker Service Clone)

Я создал проект, чтобы сделать именно это.

https://github.com/herlon214/gdsc

Вы можете просто выполнить:

gdsc --from original_service_name --name new_service_name --image registry.gitlab.com/my/new-image --domain mycompany.org

Загрузите последний бинарный выпуск здесь: https://github.com/herlon214/gdsc/releases

...