docker - 链接在两个不同的 docker-compose 文件中配置的容器

标签 docker continuous-integration docker-compose devops

假设我有两个不同的 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/

相关文章:

docker - 如何在 docker 容器中成为 root

docker - 如何在容器中运行两次可执行文件

Docker 连接问题 : apt/apk do not work inside docker container and during docker build

docker - 如果 DockerHub 上存在新版本的镜像,则自动更新 docker 镜像

ios - 有时在 CLI 上运行 xcode 测试会返回 "manager not ready"

tfs - 作为 CI 的一部分运行自动化 UI 测试

docker - 如何在 docker-compose 中使用正则表达式停止一组容器

https - 使用 docker-compose 和 https 时如何让 Visual Studio 启动正确的 url

testing - 持续改进 : Is it possible to specify the tests in advance?

docker - docker compose-网络下的外部属性表示什么?