gpt4 book ai didi

docker-compose容器在多个项目中使用了错误的容器

转载 作者:行者123 更新时间:2023-12-04 23:37:38 27 4
gpt4 key购买 nike

我有两个项目,我需要两个不同的 docker 环境(容器)。我在两个不同的项目中有两个 docker-compose.yml 文件。 foo 项目和 bar 项目。
foo/src/website/docker-compose.yml #1 ( foo )

version: '3'
services:
db:
env_file: .env
image: mariadb:10.0.23
container_name: foo-db
ports:
- "42333:3306"
restart: always
web:
image: project/foo
container_name: foo-web
env_file: .env
build: .
restart: always
command: bash -c "rm -f tmp/pids/server.pid && bundle exec rails server -p 3000 -b '0.0.0.0'"
volumes:
- .:/webapps/foo
ports:
- "3000:3000"
depends_on:
- db
bar/src/website/docker-compose.yml #2 ( bar )

version: '3'
services:
db:
image: mysql:5.5.50
container_name: bar-db
ports:
- "42333:3306"
env_file: .env
restart: always
web:
image: project/bar
container_name: bar-web
env_file: .env
build: .
restart: always
command: bash -c "rm -f tmp/pids/server.pid && bundle exec rails server -p 3000 -b '0.0.0.0'"
volumes:
- .:/webapps/bar
ports:
- "3000:3000"
depends_on:
- db

我为我的 foo 项目 docker-compose builddocker-compose up 执行此命令,一切正常。在 Kitematic 中,我看到我的两个容器具有好名字( foo-web )。
  • 我执行这个命令是为了停止我的图像 docker-compose stop
  • 我转到我的第二个项目 ( bar ) 并运行 docker-compose builddocker-compose up 。一切正常,但我的容器名称现在被 bar-web 替换。
  • 我使用docker-compose stop停止了第二个图像,并且尝试再次在docker-compose up项目文件夹中执行foo,但失败。

  • 如何保留两个不同的容器并使用 docker-compose stopdocker-compose up 从一个容器轻松切换到另一个容器?

    编辑 1

    我发现了问题,我的两个项目的 docker-compose.yml所在的主文件夹具有相同的文件夹名称。我可以解决这个问题还是需要重命名我的文件夹?

    最佳答案

    是的,目录名称是docker-compose的默认项目名称:

    $ docker-compose --help
    ...
    -p, --project-name NAME Specify an alternate project name (default: directory name)

    使用 -p参数指定特定的非默认项目名称。

    或者,您也可以设置 COMPOSE_PROJECT_NAME 环境变量(默认为项目目录的 basename)。

    如果要在文件和具有多个撰写文件的项目之间共享撰写配置,请参阅 this链接以获取更多信息。

    关于docker-compose容器在多个项目中使用了错误的容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48777109/

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