
volkerraschek/dcmerge。
app)已声明,后续同名服务将被完全跳过。通过Docker运行dcmerge的基本命令格式:
bashdocker run --rm -v $(pwd):/workdir volkerraschek/dcmerge [选项] <docker-compose文件1> <docker-compose文件2> ...
说明:
-v $(pwd):/workdir将当前目录挂载到容器的/workdir,以便访问本地文件。使用HTTP/HTTPS来源时无需挂载目录。
特点:仅添加缺失的secrets、services、networks和volumes,不处理已存在项的属性。
示例:
本地文件:
yaml# docker-compose-A.yaml services: app: environments: - CLIENT_SECRET=HelloWorld123 image: example.local/app/name:0.1.0
yaml# docker-compose-B.yaml services: app: image: app/name:2.3.0 volume: - /etc/localtime:/etc/localtime - /dev/urandom:/etc/urandom db: image: postgres volume: - /etc/localtime:/etc/localtime - /dev/urandom:/etc/urandom
合并命令:
bashdocker run --rm -v $(pwd):/workdir volkerraschek/dcmerge /workdir/docker-compose-A.yaml /workdir/docker-compose-B.yaml
合并结果:
yamlservices: app: environments: - CLIENT_SECRET=HelloWorld123 image: example.local/app/name:0.1.0 # 已存在的服务app不被覆盖 db: image: postgres # 添加缺失的db服务 volume: - /etc/localtime:/etc/localtime - /dev/urandom:/etc/urandom
特点:保护已存在的属性,第一个声明的值优先保留。
示例:
本地文件:
yaml# docker-compose-A.yaml services: app: environments: - CLIENT_SECRET=HelloWorld123 image: example.local/app/name:0.1.0
yaml# docker-compose-B.yaml services: app: environments: - CLIENT_SECRET=FooBar123 # 与A中属性冲突 image: example.local/app/name:0.1.0
合并命令:
bashdocker run --rm -v $(pwd):/workdir volkerraschek/dcmerge --existing-win /workdir/docker-compose-A.yaml /workdir/docker-compose-B.yaml
合并结果:
yamlservices: app: environments: - CLIENT_SECRET=HelloWorld123 # 保留A中的值 image: example.local/app/name:0.1.0
特点:递归覆盖已存在的属性,最后传入的文件值优先。
示例:
本地文件:
yaml# docker-compose-A.yaml services: app: environments: - CLIENT_SECRET=HelloWorld123 image: example.local/app/name:0.1.0
yaml# docker-compose-B.yaml services: app: environments: - CLIENT_SECRET=FooBar123 # 与A中属性冲突 image: example.local/app/name:0.1.0
合并命令:
bashdocker run --rm -v $(pwd):/workdir volkerraschek/dcmerge --last-win /workdir/docker-compose-A.yaml /workdir/docker-compose-B.yaml
合并结果:
yamlservices: app: environments: - CLIENT_SECRET=FooBar123 # B中的值覆盖A中的值 image: example.local/app/name:0.1.0

manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务