gpt4 book ai didi

docker - 执行彼此封装的多个 `docker-compose run`

转载 作者:行者123 更新时间:2023-12-02 19:21:02 25 4
gpt4 key购买 nike

我有一个docker-compose文件,如下所示:

  mongo:
image: mongo:3.6.12
container_name: mongo-${BUILD_ID}
app:
image: repo/my-image:latest
container_name: app-${BUILD_ID}
working_dir: /src
depends_on:
- mongo

我在CI / CD管道中运行此程序,以通过 docker-compose run app run-test-1.sh并行执行测试,但注意到仅创建了一个 mongo容器实例。这似乎导致测试相互干扰。是否可以对 docker-compose run进行设置,使其将一起创建 app服务和 mongo服务,并从其他 docker-compose run容器中封装它们,以便它们各自具有自己的 mongo实例?

我尝试了以下无济于事:
  • container_name: mongo-${BUILD_ID}中添加docker-compose.yml属性
  • 在执行命令时添加--name标志。即docker-compose run --name id1 app run-test-1.sh
  • 最佳答案

    设法弄清楚这一点。 docker-compose有一个标志--project-name,它将代替默认值(文件夹名称)使用。

    因此,我的docker-compose.yml看起来像:

      mongo:
    image: mongo:3.6.12
    app:
    image: repo/my-image:latest
    working_dir: /src
    depends_on:
    - mongo

    并且我可以执行以下命令,并且每个命令都将在各自的项目名称中进行命名空间:
  • docker-compose --project-name project1 run app ./run-test1.sh
  • docker-compose --project-name project2 run app ./run-test2.sh
  • docker-compose --project-name project3 run app ./run-test3.sh

  • 一世

    关于docker - 执行彼此封装的多个 `docker-compose run`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59796536/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com