本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com
Woodpecker CI Kaniko插件是一个集成Google Kaniko工具的Woodpecker CI插件,专为在CI/CD流水线中构建Docker镜像而设计。该插件无需依赖Docker守护进程(daemon),通过直接访问容器镜像层来构建镜像,适用于无Docker守护进程的受限环境(如Kubernetes集群、安全隔离环境),可无缝集成到Woodpecker CI的自动化流程中,实现镜像构建、推送的全自动化。
作为Woodpecker CI流水线的关键步骤,在代码提交、合并或定时触发时自动构建Docker镜像,实现"代码提交→测试→构建镜像→推送仓库"的全流程自动化。
在无Docker守护进程的环境(如Kubernetes Pod、容器化CI节点)中构建镜像,解决传统Docker-in-Docker(DinD)方案的权限和性能问题。
适用于对安全要求较高的环境,通过避免暴露Docker守护进程权限(无需--privileged模式),降低容器逃逸和权限滥用风险。
需为不同硬件架构(如x86_64、ARM)构建镜像时,通过多平台构建功能一次性生成多架构镜像并推送至仓库。
在Woodpecker CI的流水线配置文件(.woodpecker.yml)中,通过steps定义使用该插件,示例如下:
steps: build-image: image: woodpeckerci/plugin-kaniko settings: repo: my-docker-repo/my-image tag: latest dockerfile: ./Dockerfile context: . registry: [***] username: from_secret: docker_username password: from_secret: docker_password
| 参数名 | 类型 | 描述 | 示例值 |
|---|---|---|---|
repo | 必需 | 目标镜像仓库名称(含命名空间) | my-docker-repo/my-app |
tag | 可选 | 镜像标签,支持多个标签(用逗号分隔) | latest,${CI_COMMIT_SHA:0:8} |
dockerfile | 可选 | Dockerfile路径(相对于构建上下文) | ./build/Dockerfile |
context | 可选 | 构建上下文路径(相对于代码仓库根目录) | .(默认) |
registry | 可选 | 容器仓库地址(默认:Docker Hub) | [***] |
username | 可选 | 仓库认证用户名(推送镜像时必需) | my-user |
password | 可选 | 仓库认证密码/令牌(推送镜像时必需) | my-token |
platforms | 可选 | 多平台构建目标(用逗号分隔),需Kaniko支持 | linux/amd64,linux/arm64 |
cache | 可选 | 是否启用构建缓存(true/false) | true(默认) |
cache_repo | 可选 | 缓存镜像仓库地址(默认使用目标仓库) | my-docker-repo/build-cache |
build_args | 可选 | 传递给Dockerfile的构建参数(键值对,用逗号分隔) | APP_VERSION=1.0.0,ENV=prod |
skip_tls_verify | 可选 | 是否跳过仓库TLS证书验证(用于私有仓库自签名证书) | false(默认) |
snapshot_mode | 可选 | 文件系统快照模式(full/redo/time,Kaniko原生参数) | full(默认) |
push | 可选 | 是否推送镜像至仓库(true/false,默认:true) | true |
steps: build-multiarch: image: woodpeckerci/plugin-kaniko settings: repo: my-repo/my-app tag: multiarch platforms: linux/amd64,linux/arm64 dockerfile: Dockerfile.multiarch registry: [***] username: from_secret: docker_username password: from_secret: docker_password
steps: build-with-cache: image: woodpeckerci/plugin-kaniko settings: repo: my-repo/my-app tag: ${CI_COMMIT_BRANCH} cache: true cache_repo: my-repo/build-cache # 独立缓存仓库,避免污染目标镜像 dockerfile: Dockerfile context: .
steps: build-with-args: image: woodpeckerci/plugin-kaniko settings: repo: my-repo/my-app tag: ${CI_COMMIT_SHA:0:8} build_args: "APP_VERSION=${CI_COMMIT_TAG},BUILD_DATE=$(date +%Y-%m-%d)" dockerfile: Dockerfile
from_secret从密钥管理中获取,避免明文暴露。tag参数支持动态值(如Git提交哈希、分支名),需结合Woodpecker CI的环境变量(如CI_COMMIT_SHA、CI_COMMIT_BRANCH)。--privileged权限,但需确保构建上下文(代码仓库)可被插件访问。免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429