python - 如何使用 Gitlab CI 单独部署 docker 微服务并允许它们对话?
问题描述
我正在尝试创建一个能够使用 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
对此的任何帮助将不胜感激。
解决方案
推荐阅读
- python - 在 Google Data Studio 中报告,无需手动运行 R
- json - 将列名分配给使用 jq 后提取的值
- cypress - 你能测试一个元素是否滚动到
- r - 如何在 Amazon Linux 2 上安装更新版本的 R
- r - R中带有子组循环的多个自动报告
- c++ - 模板类中的模板友元函数
- javascript - 如何过滤猫鼬中的日期事件?
- c# - 如何使用 AppService 构建和打包 UWP 项目?
- ssh - ssh tmux:以编程方式使用 ssh 执行长时间运行的命令
- here-api - 将 NMA 应用程序 ID、应用程序代码和许可证密钥存储在自己的数据库中,而不是在 AppDelegate 中硬编码值