我正在尝试创建一个能够使用 docker 部署的微服务系统,并且我遇到了一些我希望得到帮助的概念障碍。所以我的每个微服务都运行在 Python 的 Nameko 框架上,以 RabbitMQ 作为消息代理,每个服务都在自己的 git repo 中。我试图弄清楚如何为每个服务创建一个 gitlab CI 部署系统,这样当主服务器更改时,对于任何特定服务,容器都会重建并自动部署到我的 docker swarm我目前对 gitlab CI 配置的尝试:
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
对此的任何帮助将不胜感激。