docker compose命令和docker-compose命令之间的实现似乎存在差异。尽管它们遵循相同的撰写规范。
服务
作为一个简单的例子,我有两个组合文件
docker-compose.hello-world.yml
version: '3.7'
services:
hello:
image: hello-world:nano-server
container_name: hello_worlddocker-compose.base.yml
非常简单的基文件
version: '3.7'
volumes:
dummy-vol:我可以使用-f标志覆盖它们,如下所示:
docker compose -f docker-compose.hello-world.yml -f docker-compose.base.yml config > docker-compose.yml不一致
如果使用上述命令,则使用内置在Docker中的docker compose CLI:
docker compose -f docker-compose.hello-world.yml -f docker-compose.base.yml config生成的结果配置如下:
这里,test-con只是我有文件的目录的名称
name: test-con
services:
hello:
container_name: hello_world
image: hello-world:nano-server
networks:
default: null
networks:
default:
name: test-con_default但是,当使用docker-compose CLI时,
docker-compose -f docker-compose.hello-world.yml -f docker-compose.base.yml config生成以下输出:
services:
hello:
container_name: hello_world
image: hello-world:nano-server
version: '3.7'
volumes:
test: {}如您所见,name键值不是用docker-compose生成的。
是否有一种方法来抑制从name CLI生成docker compose键值?
系统规格
docker version
Client:
Version: 20.10.12
API version: 1.41
Go version: go1.17.5
Git commit: e91ed5707e
Built: Mon Dec 13 22:31:40 2021
OS/Arch: linux/amd64
Context: default
Experimental: true
Server:
Engine:
Version: 20.10.12
API version: 1.41 (minimum version 1.12)
Go version: go1.17.5
Git commit: 459d0dfbbb
Built: Mon Dec 13 22:30:43 2021
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: v1.6.1
GitCommit: 10f428dac7cec44c864e1b830a4623af27a9fc70.m
runc:
Version: 1.1.0
GitCommit: v1.1.0-0-g067aaf85
docker-init:
Version: 0.19.0
GitCommit: de40ad0docker compose version
Docker Compose version 2.3.3docker-compose version
docker-compose version 1.29.2, build unknown
docker-py version: 5.0.3
CPython version: 3.10.2
OpenSSL version: OpenSSL 1.1.1m 14 Dec 2021发布于 2022-04-20 09:15:53
当升级到v2.4.1进行对接时,此差异将得到解决。
在进行同样的测试时:
docker-compose -f docker-compose.hello-world.yml config > std.yml以及
docker compose -f docker-compose.hello-world.yml config > cli.yml并检查使用diff是否存在任何差异。
diff std.yml cli.yml现在,在这两个工具中提供相同的配置。
name: test-com
services:
hello:
container_name: hello_world
image: hello-world:nano-server
networks:
default: null
networks:
default:
name: test-com_defaulthttps://stackoverflow.com/questions/71874854
复制相似问题