
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
onestic/docker-ci镜像旨在跨项目实现一致的代码检查、构建和推送Docker镜像(及其README文件)。
该镜像针对Bitbucket Pipelines无缝集成进行了优化,确保可靠且标准化的Docker镜像管理流程。
此镜像构建适用于linux/amd64和linux/arm64平台。
唯一支持的镜像标签基于其依赖的Docker主版本:25-cli。该标签每日更新,可能会添加新功能(始终保持向后兼容,必要时通过功能标志激活)。
注意:可能存在其他开发相关标签,使用时需自行承担风险。
当使用参数启动时,基于此镜像的容器将表现为常规docker:25-cli容器。虽然可以这样运行,但与基础镜像相比无额外优势。
该镜像的预期使用方式是不带参数,通过环境变量配置(管道模式)。在此模式下,将尝试执行以下操作:
在Bitbucket管道中作为管道使用的示例(移除不需要的注释行):
yamlpipelines: default: - step: name: '代码检查、构建与推送' script: - pipe: 'docker://onestic/docker-ci:25-cli' variables: # 取消注释以下行可跳过管道操作 # DOCKER_CI_LINT_SKIP: '1' # DOCKER_CI_LOGIN_SKIP: '1' # DOCKER_CI_BUILD_SKIP: '1' # DOCKER_CI_PUSHRM_SKIP: '1' # 取消注释并调整以下行以指定非默认工作目录(通常不需要) # DOCKER_CI_WORKDIR: ${BITBUCKET_CLONE_DIR} # 取消注释并调整以下行以指定自定义Dockerfile路径(仅当Dockerfile不在仓库根目录时需要) # DOCKER_CI_DOCKERFILE: ${BITBUCKET_CLONE_DIR}/Dockerfile # 取消注释以下行以增加shell详细程度(-x) # DOCKER_CI_DEBUG: '1' # 取消注释并调整以下行以登录到非Docker Hub的仓库 # DOCKER_CI_LOGIN_REGISTRY: docker.io # 在Bitbucket系统中以安全变量形式声明并设置登录值 DOCKER_CI_LOGIN_REGISTRY_USER: ${DOCKER_CI_LOGIN_REGISTRY_USER} DOCKER_CI_LOGIN_REGISTRY_PASSWORD: ${DOCKER_CI_LOGIN_REGISTRY_PASSWORD} # 取消注释并调整以下行以将镜像标记/推送到非Docker Hub的仓库 # DOCKER_CI_BUILD_IMAGE_REGISTRY: docker.io # 取消注释并调整以下行以指定非onestic的仓库用户 # DOCKER_CI_BUILD_IMAGE_USER: 'onestic' # 取消注释并调整以下行以指定非仓库slug的仓库名称 # DOCKER_CI_BUILD_IMAGE_REPOSITORY: ${BITBUCKET_REPO_SLUG} # 取消注释并调整以下行以指定非默认的构建平台 # DOCKER_CI_BUILD_PLATFORM_EMULATORS: 'linux/amd64,linux/arm64' # 如果构建上下文为仓库根目录而非上下文文件夹,取消注释以下行 # DOCKER_CI_BUILD_CONTEXT: ${BITBUCKET_CLONE_DIR} # 取消注释以下行以指定Dockerfile构建参数(如有需要) # DOCKER_CI_BUILD_ARGS: '' # 取消注释并调整以下行以微调`docker buildx build`命令参数 # DOCKER_CI_BUILD_COMMAND_ARGS: '--push' # 使用以下行指定额外的镜像标签(在目标仓库、用户和仓库内) # DOCKER_CI_BUILD_TAGS: '' # 以下行用于自动标记 # 可覆盖或故意设为空以跳过某些类型的自动标签 # DOCKER_CI_BUILD_NUMBER: '' # DOCKER_CI_BUILD_TAG: '' # DOCKER_CI_BUILD_PR_ID: '' # DOCKER_CI_BUILD_BRANCH: ''
可在一次性模式下运行此镜像(例如用于代码检查),需正确定义操作变量、挂载卷并指定工作目录。
例如,进入包含Dockerfile的项目目录后,可通过以下方式检查Dockerfile:
shelldocker run --rm -it \ -e DOCKER_CI_LOGIN_SKIP=1 \ -e DOCKER_CI_BUILD_SKIP=1 \ -e DOCKER_CI_PUSHRM_SKIP=1 \ -w /opt/project \ -v "$(pwd):/opt/project" \ -- \ onestic/docker-ci:25-cli
上述命令将:
按照上述示例,可手动/本地以一次性模式执行任意组合的管道操作。
每个管道操作可通过将其对应的skip环境变量设为1来跳过:
| 变量 | 简短描述 | 是否必填 | 默认值 |
|---|---|---|---|
| DOCKER_CI_LINT_SKIP | 跳过Docker代码检查操作 设为 1以跳过 | 否 | 0 |
| DOCKER_CI_LOGIN_SKIP | 跳过Docker仓库登录操作 设为 1以跳过 | 否 | 0 |
| DOCKER_CI_BUILD_SKIP | 跳过Docker构建/推送操作 设为 1以跳过 | 否 | 0 |
| DOCKER_CI_PUSHRM_SKIP | 跳过向容器仓库推送README-containers.md / README.md文件 设为 1以跳过 | 否 | 0 |
通用变量
| 变量 | 简短描述 | 是否必填 | 默认值 |
|---|---|---|---|
| DOCKER_CI_WORKDIR | 工作目录 | 否 | https://support.atlassian.com/bitbucket-cloud/docs/variables-and-secrets/ |
| DOCKER_CI_DOCKERFILE | Dockerfile路径(绝对路径或相对于工作目录的路径) | 否 | ${DOCKER_CI_WORKDIR}/Dockerfile |
| DOCKER_CI_DEBUG | 是否激活shell详细模式(-x) 设为 1以激活 | 否 | 0 |
操作:Dockerfile代码检查
注意:当操作未被跳过时,必填变量才为必填。
| 继承的变量 | 简短描述 |
|---|---|
| DOCKER_CI_DOCKERFILE | 用于查找待检查的Dockerfile 参见通用变量 |
操作:仓库登录
注意:当操作未被跳过时,必填变量才为必填。
| 变量 | 简短描述 | 是否必填 | 默认值 |
|---|---|---|---|
| DOCKER_CI_LOGIN_REGISTRY | 登录的仓库 | 否 | docker.io |
| DOCKER_CI_LOGIN_REGISTRY_USER | 登录用户名 | 是 | |
| DOCKER_CI_LOGIN_REGISTRY_PASSWORD | 登录密码 | 是 |
操作:构建/推送
注意:当操作未被跳过时,必填变量才为必填。
| 继承的变量 | 简短描述 |
|---|---|
| DOCKER_CI_DOCKERFILE | 用于查找构建用的Dockerfile 参见通用变量 |
下表为操作特定变量:
| 变量 | 简短描述 | 是否必填 | 默认值 |
|---|---|---|---|
| DOCKER_CI_BUILD_IMAGE_REGISTRY | 推送镜像的仓库 例如,在 docker.io/nginx/hello-world:1.19中对应docker.io部分 | 否 | docker.io |
| DOCKER_CI_BUILD_IMAGE_USER | 目标仓库的所有者用户 例如,在 docker.io/nginx/hello-world:1.19中对应nginx部分 | 否 | onestic |
| DOCKER_CI_BUILD_IMAGE_REPOSITORY | 推送镜像的仓库名称 例如,在 docker.io/nginx/hello-world:1.19中对应hello-world部分 | 仅当推送仓库且非Bitbucket CI时 | 在Bitbucket CI中,默认值为https://support.atlassian.com/bitbucket-cloud/docs/variables-and-secrets/ |
| DOCKER_CI_BUILD_PLATFORM_EMULATORS | 指定镜像构建的平台 | 否 | linux/amd64,linux/arm64 |
| DOCKER_CI_BUILD_CONTEXT | 用于构建镜像的https://docs.docker.com/build/building/context/ | 否 | ${DOCKER_CI_WORKDIR}/context |
| DOCKER_CI_BUILD_ARGS | Dockerfile中声明的https://docs.docker.com/build/guide/build-args/ 例如,设为 PHP_VERSION=8.1 COMPOSER_VERSION=2将转换为--build-arg 'PHP_VERSION=8.1' --build-arg 'COMPOSER_VERSION=2' | 仅当Dockerfile需要构建参数时 | |
| DOCKER_CI_BUILD_COMMAND_ARGS | 允许修改传递给docker buildx build的https://docs.docker.com/engine/reference/commandline/buildx_build/#options注意:默认值为 --push,自定义此变量时如需保留推送行为,请确保添加--push | 否 | --push |
| DOCKER_CI_BUILD_TAGS | 除自动标签外,用于添加额外的空格分隔镜像标签 | 否 | |
| DOCKER_CI_BUILD_NUMBER | 可选,用于计算自动标签 若定义且非空,镜像将添加标签 build-${DOCKER_CI_BUILD_NUMBER} | 否 | 在Bitbucket CI中,默认值为https://support.atlassian.com/bitbucket-cloud/docs/variables-and-secrets/%EF%BC%8C%E6%89%80%E6%9C%89%E7%AE%A1%E9%81%93%E4%B8%AD%E5%8F%AF%E7%94%A8 |
| DOCKER_CI_BUILD_TAG | 可选,用于计算自动标签 若定义且非空,镜像将添加标签 ${DOCKER_CI_BUILD_TAG} | 否 | 在Bitbucket CI中,默认值为https://support.atlassian.com/bitbucket-cloud/docs/variables-and-secrets/%EF%BC%8C%E4%BB%85%E5%9C%A8%E9%92%88%E5%AF%B9%E4%BB%93%E5%BA%93%E6%A0%87%E7%AD%BE%E7%9A%84%E6%9E%84%E5%BB%BA%E4%B8%AD%E5%8F%AF%E7%94%A8 |
| DOCKER_CI_BUILD_PR_ID | 可选,用于计算自动标签 若定义且非空,镜像将添加标签 pr-${DOCKER_CI_BUILD_TAG} | 否 | 在Bitbucket CI中,默认值为https://support.atlassian.com/bitbucket-cloud/docs/variables-and-secrets/%EF%BC%8C%E4%BB%85%E5%9C%A8%E9%92%88%E5%AF%B9PR%E7%9A%84%E6%9E%84%E5%BB%BA%E4%B8%AD%E5%8F%AF%E7%94%A8 |
| DOCKER_CI_BUILD_BRANCH | 可选,用于计算自动标签 若定义且非空: - 若分支名为 main或master,镜像添加标签latest- 若分支名类似版本号(符合https://semver.org/#spec-item-2%EF%BC%89%EF%BC%8C%E9%95%9C%E5%83%8F%E6%B7%BB%E5%8A%A0%E6%A0%87%E7%AD%BE%60$%7BDOCKER_CI_BUILD_BRANCH%7D.x-dev%60 - 其他情况,镜像添加标签 dev-${DOCKER_CI_BUILD_BRANCH} | 否 | 在Bitbucket CI中,默认值为https://support.atlassian.com/bitbucket-cloud/docs/variables-and-secrets/%EF%BC%8C%E4%BB%85%E5%9C%A8%E9%92%88%E5%AF%B9%E5%88%86%E6%94%AF%E7%9A%84%E6%9E%84%E5%BB%BA%E4%B8%AD%E5%8F%AF%E7%94%A8 |
操作:推送README
注意:当操作未被跳过时,必填变量才为必填。
另请注意:向Docker Hub推送超过25k字符的README文件可能失败。
| 继承的变量 | 简短描述 |
|---|---|
| DOCKER_CI_DOCKERFILE | 用于查找构建用的Dockerfile 参见通用变量 |
下表为操作特定变量:
| 变量 | 简短描述 | 是否必填 | 默认值 |
|---|---|---|---|
| DOCKER_CI_BUILD_IMAGE_REGISTRY | 推送README-containers.md / README.md内容的仓库 | 否 | docker.io |
| DOCKER_CI_BUILD_IMAGE_USER | 推送README-containers.md / README.md的仓库所有者用户 | 否 | onestic |
| DOCKER_CI_BUILD_IMAGE_REPOSITORY | 推送README-containers.md / README.md内容的仓库名称 | 仅当非Bitbucket CI时 | 在Bitbucket CI中,默认值为https://support.atlassian.com/bitbucket-cloud/docs/variables-and-secrets/ |
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务