镜像构建插件文档
表单参数说明
- 认证方式:推荐选择「仓库凭证」(
账号密码方式后续将逐步下线,不建议使用)。 - 仓库凭证:选择已配置的镜像仓库认证凭证(需提前在平台添加包含仓库地址、用户名、密码的凭证)。示例:下拉选择“Docker Hub 官方凭证”“私有仓库凭证”等。
- 镜像 Tag:镜像的标签名称,支持引用流水线全局变量或自定义参数实现动态打标。示例:
app:v1.${GITEE_PIPELINE_BUILD_NUMBER}、backend:${BUILD_ID}。 - Dockerfile 路径:相对于代码库根目录的 Dockerfile 位置。示例:
./Dockerfile、./src/main/docker/Dockerfile。 - Context:Docker 构建上下文路径(相对于代码库根目录),不填则默认以代码库根目录为上下文。示例:
./target(指定target目录为构建上下文)。 - 拉取上游产出:拉取上游任务的产出物(可配置多个),支持系统参数或直接输入拉取地址;产出物将解压到 Context 目录(无 Context 则解压到代码库根目录)。示例:
${BUILD_ARTIFACT}、http://example.com/artifact.zip。 - Docker 缓存:开启后使用 buildctl 缓存机制加速构建(默认关闭,关闭时等效于
--no-cache=true)。 - 镜像架构:指定构建的镜像架构(如
amd64、arm64等)。示例:下拉选择amd64适配 x86 服务器,选择arm64适配 ARM 架构设备。 - 构建参数:通过
--build-arg传递给 Dockerfile 的构建参数,支持键值对配置。示例:JAVA_HOME=/usr/lib/jvm/java-11-openjdk、APP_ENV=prod。 - 产出参数别名:自定义任务输出参数的别名,避免多任务间参数冲突,下游可通过
{参数名}直接引用。示例:设置别名为IMAGE_TAG后,下游可用{IMAGE_TAG}获取当前镜像标签。
技术说明(基于 buildctl)
本插件底层基于 buildctl 实现镜像构建,具备以下特性:
- 构建性能更优,支持增量缓存和并行构建,重复构建时可复用历史层加速。
- 原生支持多架构镜像构建,通过「镜像架构」参数可直接指定目标架构。
- 与容器生态深度集成,兼容标准 Dockerfile 语法,同时支持 advanced 构建特性(如缓存挂载、多阶段优化等)。
注意事项
- 认证方式迁移:
账号密码认证方式计划下线,新流程请优先使用「仓库凭证」,已配置的旧流程需尽快迁移,避免影响使用。 - 构建效率优化:
- 将基础依赖(如 JDK、Node 环境)封装到基础镜像,减少 Dockerfile 中可变内容,结合 buildctl 缓存可大幅提升构建速度。
- 合理设置 Context 路径,仅包含构建必需的文件(避免冗余文件增加上下文传输耗时)。
- 上下文路径校验:通过流水线中添加
ls {Context路径}命令,提前确认上下文目录结构及文件完整性,避免因文件缺失导致构建失败。 - 多架构构建建议:如需同时构建多架构镜像,可配置多个插件实例分别指定架构,或通过 buildctl 多架构构建能力批量生成。