
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
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,否则为空字符串 |
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务