作者:平凡岁月ss | 来源:互联网 | 2022-12-30 10:05
我从以下配置的两个分支获得了代码:
泊坞窗,compose.yml:
version: '3'
services:
server:
build: .
restart: always
image: XXXXX
entrypoint: ["./run.sh"]
container_name: XXXX
ports:
- 127.0.0.1:8000:8000
volumes:
- .:/app
depends_on:
- redis
redis:
container_name: XXXXX
image: redis:4-alpine
当docker撰写第一个分支时,它运行良好,但是当我编写第二个分支时,原始容器成为新的分支容器,我希望两个分支容器同时存在.
当我编写第二个分支代码时,以下消息显示:
Recreating XXXXX_branch2 ... done
Attaching to XXXXX_branch1
yamenk..
8
Docker compose将容器与项目名称(默认目录名称)和服务名称或container_name(如果指定)相关联.因此,如果两个分支都具有相同目录名下的compose文件,因此compose文件将被解释为引用同一容器,这将导致重新创建容器.
要避免这种情况,您可以--project-name
选择覆盖默认值(目录名称).
docker-compose --project-name branch1 up -d
docker-compose --project-name branch2 up -d
在这种情况下,将创建两个容器.
但请注意,如果两个撰写文件具有相同的container_name
集合,则会发生冲突,第二个容器创建将失败.要避免这种情况,请使用不同的容器名称或删除container_name
属性,以获取默认的容器名称__1
1> yamenk..:
Docker compose将容器与项目名称(默认目录名称)和服务名称或container_name(如果指定)相关联.因此,如果两个分支都具有相同目录名下的compose文件,因此compose文件将被解释为引用同一容器,这将导致重新创建容器.
要避免这种情况,您可以--project-name
选择覆盖默认值(目录名称).
docker-compose --project-name branch1 up -d
docker-compose --project-name branch2 up -d
在这种情况下,将创建两个容器.
但请注意,如果两个撰写文件具有相同的container_name
集合,则会发生冲突,第二个容器创建将失败.要避免这种情况,请使用不同的容器名称或删除container_name
属性,以获取默认的容器名称__1