docker - docker-compose 等待另一个节点上的服务启动
问题描述
我有 2 个节点,每个节点都通过 docker-compose 文件运行不同的服务。节点 1 运行一个名为“rabbitmq”的服务。节点 2 有我的应用程序,它“依赖于”rabbitmq。我正在使用一个似乎适用于其他事物的群体/覆盖网络。我似乎无法将节点 2 上的“depends_on”用于rabbitmq(或者我使用错误......这很可能)。我收到一个错误,即找不到 rabbitmq。例如
节点 1 docker-compose 文件:
version: '3.4'
services:
rabbitmq:
image: someimage/rabbitmq
container_name: rabbitmq
ports:
- 15672:15672
hostname: rabbitmq
healthcheck:
test: ["CMD", "curl" "-f", "http://localhost:15672"]
interval: 10s
timeout: 5s
retries: 5
networks:
- my-net
networks:
my-net:
driver: overlay
attachable: true
NODE2 docker-compose 文件:
version: '3.4'
services:
myapp:
image: myapp
container_name: myapp
hostname: myapp
depends_on:
rabbitmq:
condition: healthy
networks:
- my-net
networks:
my-net:
driver: overlay
external: true
当我在 node2 的 docker-compose 文件上运行 docker-compose “up”时,我收到一个错误,即服务 rabbitmq 未定义。
我有更多的服务在两个节点上运行,所以这只是一个例子。基于我需要该网络的其他服务,我确信覆盖网络是可以的。
我想念的东西一定很简单。至少我希望如此。但我的谷歌搜索没有帮助。
谢谢比尔
解决方案
推荐阅读
- scala - 使用 java.io.File.mkdirs() 将文件写入目录,然后在 spark 集群模式下无法访问它
- mysql - 使用 OR 的 1 个语句中的多组查询
- mysql - MySQL 列长度最大为 1026 个字符
- javascript - 如何为右侧做一个消失的元素,这与它在左侧工作一样
- c# - 例外:“发送 HTTP 标头后服务器无法设置状态。” Controller成功返回后
- javascript - free-jqgrid 导出为 excel 或 csv 格式
- r - 如何在r中粘贴基于'this'条件的字符串?
- html - 悬停时旋转Y时CSS背景图像覆盖div
- ffmpeg - FFmpeg 破折号清单'-window_size'
- python-3.7 - 即使我已将 python 添加到路径,也无法在命令提示符下运行 python 程序