Config Merge 是一个运行在Docker容器中的工具,用于合并JSON、TOML、YAML格式的配置文件,并支持环境变量替换。通过该工具可以轻松处理多环境配置文件的合并与定制,适用于需要动态生成配置的场景。
拉取镜像
bashdocker pull boxboat/config-merge
查看帮助
bashdocker run --rm boxboat/config-merge -h
参数说明
-f, --format:输出格式,可选json|toml|yaml,默认yaml-n, --inline:开始使用内联表示法的深度,默认10,设为0禁用-h, --help:显示帮助信息文件处理规则
.env和.sh文件:会被加载为环境变量,用于变量替换.json, .js, .toml, .yaml, .yml文件:会被合并处理.patch.json, .patch.js, .patch.toml, .patch.yaml, .patch.yml文件:会作为JSONPatch应用容器的工作目录为/home/node,需要合并的文件/目录需挂载到此目录。
示例1:生成Docker Compose配置
以下示例展示如何合并本地配置文件,生成适用于本地测试的Docker Compose配置:
bashdocker_compose_config=$( docker run --rm \ -v "$(pwd)/test/docker-compose/:/home/node/" \ boxboat/config-merge \ local.env docker-compose.yml docker-compose-local.patch.yml docker-compose-local.yml ) # 使用生成的配置启动Docker Compose docker-compose -f - -p nginx-local up <<EOF $docker_compose_config EOF # 部署到Swarm docker stack deploy -c - nginx-local <<EOF $docker_compose_config EOF
示例2:使用通配符
支持通配符匹配文件,但需在docker run命令中对通配符进行转义,以便在容器内展开:
bashdocker_compose_config=$( docker run --rm \ -v "$(pwd)/test/docker-compose/:/home/node/" \ boxboat/config-merge \ "*.env" docker-compose.yml "*-local*" )
扩展名为.json、.js、.toml、.yaml、.yml的文件将按顺序合并,合并算法基于lodash merge函数,规则如下:
扩展名为.patch.json、.patch.js、.patch.toml、.patch.yaml、.patch.yml的文件将作为JSON Patch应用于合并后的配置。
.env和.sh文件会被加载到环境中,环境变量替换使用https://github.com/a8m/envsubst%E5%AE%9E%E7%8E%B0%EF%BC%8C%E6%94%AF%E6%8C%81%E4%BB%A5%E4%B8%8B%E8%A1%A8%E8%BE%BE%E5%BC%8F%EF%BC%9A
| 表达式 | 含义 |
|---|---|
${var} | var的值(与$var相同) |
${var-$DEFAULT} | 若var未设置,则使用$DEFAULT |
${var:-$DEFAULT} | 若var未设置或为空,则使用$DEFAULT |
${var=$DEFAULT} | 若var未设置,则使用$DEFAULT |
${var:=$DEFAULT} | 若var未设置或为空,则使用$DEFAULT |
${var+$OTHER} | 若var已设置,则使用$OTHER,否则为空字符串 |
${var:+$OTHER} | 若var已设置,则使用$OTHER,否则为空字符串 |
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。



探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务