用于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 .
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 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 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务