
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
dockerize是一个用于简化Docker容器中应用运行的工具,主要功能包括:
典型使用场景包括:当应用需要通过环境变量控制配置文件值,或应用日志输出到文件系统而非标准输出时,dockerize可帮助解决配置管理和日志收集问题。此外,它还能解决容器间服务依赖的启动顺序问题,确保依赖服务就绪后再启动应用。
dockerize是静态编译的二进制文件,可与任何基础镜像配合使用。
Alpine:
shapk add curl # 安装最新版本 curl -sfL $(curl -s https://api.github.com/repos/powerman/dockerize/releases/latest | grep -i /dockerize-$(uname -s)-$(uname -m)\" | cut -d\" -f4) | install /dev/stdin /usr/local/bin/dockerize # 安装特定版本(如v0.11.5) curl -sfL https://github.com/powerman/dockerize/releases/download/v0.11.5/dockerize-`uname -s`-`uname -m` | install /dev/stdin /usr/local/bin/dockerize
Debian/Ubuntu:
shapt update && apt install -y curl # 安装最新版本 curl -sfL $(curl -s https://api.github.com/repos/powerman/dockerize/releases/latest | grep -i /dockerize-$(uname -s)-$(uname -m)\" | cut -d\" -f4) | install /dev/stdin /usr/local/bin/dockerize # 安装特定版本(如v0.11.5) curl -sfL https://github.com/powerman/dockerize/releases/download/v0.11.5/dockerize-`uname -s`-`uname -m` | install /dev/stdin /usr/local/bin/dockerize
Busybox(使用wget):
sh# 安装最新版本 wget -O - $(wget -O - https://api.github.com/repos/powerman/dockerize/releases/latest | grep -i /dockerize-$(uname -s)-$(uname -m)\" | cut -d\" -f4) | install /dev/stdin /usr/local/bin/dockerize # 安装特定版本(如v0.11.5) wget -O - https://github.com/powerman/dockerize/releases/download/v0.11.5/dockerize-`uname -s`-`uname -m` | install /dev/stdin /usr/local/bin/dockerize
验证签名(可选):
shcurl -sfL https://powerman.name/about/Powerman.asc | gpg --import curl -sfL https://github.com/powerman/dockerize/releases/download/v0.11.5/dockerize-`uname -s`-`uname -m`.asc > dockerize.asc gpg --verify dockerize.asc /usr/local/bin/dockerize
ezintz/dockerize镜像基于Alpine Linux,已预装dockerize并添加到$PATH:
dockerfileFROM ezintz/dockerize ... ENTRYPOINT dockerize ...
dockerfileFROM ezintz/dockerize AS dockerize FROM alpine:3.16 COPY --from=dockerize /usr/local/bin/dockerize /usr/local/bin ... ENTRYPOINT dockerize ...
dockerize通过包装应用调用(使用ENTRYPOINT或CMD指令)工作。例如:
dockerfileCMD dockerize -template /etc/nginx/nginx.tmpl:/etc/nginx/nginx.conf -stdout /var/log/nginx/access.log -stderr /var/log/nginx/error.log -wait tcp://web:8000 nginx
上述命令会:从模板生成/etc/nginx/nginx.conf,将/var/log/nginx/access.log输出到STDOUT,/var/log/nginx/error.log输出到STDERR,等待web:8000可用后启动nginx。
模板相关
-template <src>:<dest>: 指定模板文件和目标文件,可多次使用
shdockerize -template template1.tmpl:file1.cfg -template template2.tmpl:file3
-template <src>: 仅指定模板源,输出到STDOUT
shdockerize -template template1.tmpl
-template <src_dir>:<dest_dir>: 处理目录下所有文件(递归),保持目录结构
shdockerize -template src_dir:dest_dir
-no-overwrite: 不覆盖已存在的目标文件
shdockerize -no-overwrite -template template1.tmpl:file
-delims <left:right>: 修改模板分隔符(默认{{:}})
shdockerize -delims "<%:%>" -template template1.tmpl
-template-strict: 要求模板中引用的所有环境变量必须存在
shdockerize -template-strict -template template1.tmpl
日志相关
-stdout <file>: 将文件内容输出到STDOUT,可多次使用
shdockerize -stdout info.log -stdout perf.log
-stderr <file>: 将文件内容输出到STDERR,可多次使用等待依赖服务
-wait <url>: 等待指定服务可用,支持协议:file、tcp、tcp4、tcp6、http、https、amqp、amqps、unix,可多次使用
shdockerize -wait tcp://db:5432 -wait http://web:80 -wait file:///tmp/generated-file
-wait-list "<url1> <url2> ...": 空格分隔的等待URL列表,与多次-wait等效
shdockerize -wait-list "tcp://db:5432 http://web:80 file:///tmp/generated-file"
-wait-http-header <header>: 为HTTP/HTTPS请求指定头信息(支持文件路径,文件需包含Header: value格式内容)
shdockerize -wait http://web:80 -wait-http-header "Authorization:Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ=="
-wait-http-status-code <code>: 指定可接受的HTTP状态码(默认接受2xx),可多次使用
shdockerize -wait http://web:80 -wait-http-status-code 302 -wait-http-status-code 200
-wait-http-skip-redirect: 忽略HTTP重定向超时与重试
-timeout <duration>: 等待服务超时时间(默认10秒),超时后退出状态码123
shdockerize -wait tcp://db:5432 -timeout 10s
-wait-retry-interval <duration>: 等待失败后重试间隔(默认1秒)
shdockerize -wait tcp://db:5432 -wait-retry-interval 5s
SSL相关
-cacert <path>: 指定自定义CA证书用于HTTPS/AMQPS连接验证
shdockerize -cacert /path/to/ca.pem -wait https://web:80
-skip-tls-verify: 跳过HTTPS/AMQPS连接的SSL证书验证
shdockerize -skip-tls-verify -wait https://web:80
环境变量注入
-env <path/url>: 从INI文件加载环境变量默认值-env-section <name>: 指定INI文件中的节名-multiline: 解析INI文件中的多行条目-env-header <header>: 为HTTP获取INI文件指定头信息
shdockerize -env /path/to/file.ini -env-section SectionName -multiline ... dockerize -env http://localhost:80/file.ini -env-header "Header: value" ...
模板使用Golang text/template语法,可通过.Env访问环境变量:
{{ .Env.PATH }} is my path
除http://masterminds.github.io/sprig/%E5%A4%96%EF%BC%8C%E8%BF%98%E6%94%AF%E6%8C%81%E4%BB%A5%E4%B8%8B%E5%86%85%E7%BD%AE%E5%87%BD%E6%95%B0%EF%BC%9A
exists $path: 检查文件路径是否存在
{{ if exists "/etc/default/myapp" }}
parseUrl $url: 解析URL为协议、主机等部分(等同于url.Parse)isTrue $value: 将字符串解析为布尔值
{{ if isTrue .Env.ENABLED }}
jsonQuery $json $query: 对JSON文档执行查询readFile $fileName: 读取文件内容(文件不存在返回空字符串)注意:与原dockerize v0.6.1不兼容,以下函数行为变更:
default:参数顺序变更contains:现在作用于字符串,检查map键使用hasKeysplit:现在返回map,返回列表使用splitListreplace:参数顺序和数量变更loop:已移除,使用untilStep替代
通过名称访问对象和字段,数组元素通过索引(如[1])访问,嵌套元素用点(.)分隔。
示例:
若.Env.SERVICES包含以下JSON:
json{ "services": [ { "name": "service1", "port": 8000 },{ "name": "service2", "port": 9000 } ] }
则jsonQuery .Env.SERVICES "services.[1].port"返回9000。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。





来自真实用户的反馈,见证轩辕镜像的优质服务