Я работаю над попыткой создать микросервисную систему, которая может быть развернута с помощью докера, и я столкнулся с несколькими концептуальными препятствиями, с которыми мне бы хотелось помочь. Таким образом, каждый из моих микро-сервисов работает на среде Nameko Python с RabbitMQ в качестве брокера сообщений, и каждый из этих сервисов находится в своем собственном git-репо. Я пытаюсь выяснить, как я могу создать систему развертывания gitlab CI для каждого сервиса, чтобы при смене мастера для любой перикулярной службы контейнер перестраивался и автоматически развертывался на моем рое докера Моя текущая попытка gitlab CI config :
stage:
- build
- deploy
build:
image: docker
variables:
REG_HOST: 'local-registry-url'
script:
- docker login to local image repo
- docker build -t $REG_HOST/$SOME_TAG
- docker push $REG_HOST/$SOME_TAG
deploy:
image: docker
script:
- docker login to local image repo
- docker stack deploy --with-registry-auth --compose-file=docker-stack-compose.yml
only:
- master
Я создаю новый docker-stack-compose.yml
для каждой службы, но я не уверен, как определить зависимость, на которую опираются все мои службы, например rabbitMQ, без переопределения ее в каждой из моих docker-stack-compose.yml
и будет ли это даже Работа? Кроме того, как бы я поместил их всех в одну сеть?
Вот как выглядит мой текущий файл составления текущей работы для тестового сервиса:
version: '3'
services:
test:
container_name: io-test
image: local-registry-url/service-name
tty: true
ports:
- '8000:8000'
depends_on:
- rabbitmq
networks:
- service-net
deploy:
mode: replicated
replicas: 2
networks:
default:
external: service-net
Любая помощь с этим будет принята с благодарностью.