
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
用于CI/CD流水线的Docker镜像,旨在帮助将应用部署到Dokku服务器。
假设Docker镜像可作为CI任务运行并注入环境变量,以下CI系统的变量将被自动检测:
该镜像提供两个供外部使用的二进制文件:
dokku-deploy:触发配置的GIT_REMOTE_URL处的应用部署dokku-unlock:解锁配置的GIT_REMOTE_URL处应用的部署要运行任一二进制文件,可在包含待部署仓库的非浅克隆目录中使用以下docker命令:
shell# 其中.env文件包含GIT_REMOTE_URL和SSH_PRIVATE_KEY # 部署 docker run --rm -v="$PWD:/app" --env-file=.env dokku/ci-docker-image dokku-deploy # 解锁 docker run --rm -v="$PWD:/app" --env-file=.env dokku/ci-docker-image dokku-unlock
支持以下环境变量:
BRANCH:
masterCI_BRANCH_NAME:
''CI_COMMIT:
''COMMAND:
''DEPLOY_DOCKER_IMAGE:
git:from-image部署的Docker镜像''DEPLOY_USER_NAME:
''DEPLOY_USER_EMAIL:
''GIT_REMOTE_URL:
GIT_PUSH_FLAGS:
REVIEW_APP_NAME:
review-$APP_NAME-$CI_BRANCH_NAMESSH_HOST_KEY:
ssh-keyscan -t rsa $HOST的结果''SSH_PRIVATE_KEY:
SSH_PRIVATE_KEY_BASE64SSH_PRIVATE_KEY_BASE64:
SSH_PASSPHRASE:
''TRACE:
''GIT_REMOTE_URL SSH格式GIT_REMOTE_URL值应指定为SSH格式,如下所示:
shell# 未指定端口 ssh://dokku@dokku.me/node-js-app # 指定可选端口 ssh://dokku@dokku.me:22/node-js-app # 通用格式 ssh://dokku@HOSTNAME:PORT/APP_NAME
此格式模仿DSN格式,类似于常规git push dokku main命令使用的格式,但应用名称通过斜杠与主机名的其余部分分隔。端口为可选参数,允许根据需要将SSH服务器重新绑定到其他端口。
[!IMPORTANT] SSH密钥必须通过
dokku ssh-keys:add命令添加到dokku用户,不能手动添加,否则应用名称将无法正确检测。
该镜像允许在应用部署过程中触发多种基于文件的钩子。这些钩子应为可执行文件,相对于dokku-deploy脚本执行的当前工作目录(通常是仓库根目录)。
脚本中可使用以下环境变量:
APP_NAME:将要部署的远程应用名称。考虑了解析后的GIT_REMOTE_URL和REVIEW_APP_NAME。IS_REVIEW_APP:部署审查应用时为true,否则为false。SSH_REMOTE:解析后的SSH远程URL。最简单的钩子是如下shell脚本:
shell#!/bin/sh -l echo "你好,世界"
[!NOTE] 本仓库使用的Docker镜像目前仅支持
sh作为解释器。若需要其他解释器,应手动添加到环境中。
要执行远程dokku命令,可如下执行ssh二进制文件:
shell#!/bin/sh -l ssh "$SSH_REMOTE" -- version
此外,若Dokku命令仅需对审查应用执行,可检查IS_REVIEW_APP变量是否为true以包装审查应用特定逻辑:
shell#!/bin/sh -l if [ "$IS_REVIEW_APP" = "true" ]; then ssh "$SSH_REMOTE" -- config:set "$APP_NAME" "DOMAIN=$APP_NAME.dokku.me" echo "已配置审查应用域名" fi
可用的钩子如下:
bin/ci-pre-deploy:在任何应用设置之后、应用部署之前触发bin/ci-post-deploy:在应用部署之后触发bin/ci-pre-review-app-destroy:在审查应用销毁之前触发bin/ci-post-review-app-destroy:在审查应用销毁之后触发textdocker build -t dokku/ci-docker-image .
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务