假设我有两个不同的 docker-compose
配置:db.yml
:
version: '3'
networks:
default:
external:
name: backend
volumes:
mongo_data:
services:
mongodb:
image: mongodb
container_name: mongodb
restart: always
ports:
- 27017:27017
networks:
- backend
volumes:
- mongo_data:/data/db
admin.yml
:version: '3'
networks:
default:
external:
name: backend
volumes:
mongo_data:
services:
mongoclient:
image: mongoclient/mongoclient
restart: always
ports:
- 3000:3000
networks:
- backend
depends_on:
- mongodb
links:
- mongodb
这将不起作用,因为链接的容器未在同一文件中配置。但是有没有办法实现类似的目标?
我想要一个更干净的设置来设置我的生产环境,以便我能够只重新启动更改的相关位,而不是一次重新启动所有内容。
最佳答案
要链接到 mongodb,您需要链接“外部”:
...
external_links:
- project_mongodb_1:mongodb
...
请注意您需要更换
project_mongodb_1
使用正确的名称 docker-compose ps
给你。您需要删除 depends_on
部分。这行不通。看这里:https://github.com/docker/compose/issues/3951但是,您根本不应该使用链接,因为它们已被弃用。请参阅此处了解更多信息:https://docs.docker.com/compose/compose-file/#external_links
请参阅有关如何操作的信息:https://stackoverflow.com/a/38089080/1029251
关于docker - 链接在两个不同的 docker-compose 文件中配置的容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52439016/