假设我有两种不同的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
这将不起作用,因为链接的容器未在同一文件中配置。但是有办法达到类似的目的吗?
我希望有一个更干净的设置来设置生产环境,以便我只能重新启动已更改的相关位,而不是立即重新启动。
答案 0 :(得分:1)
要链接到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