- 特征
- 设置
- auto_tag
- 例子
- 高级设置
- 多注册表推送示例
Docker Buildx 插件
悟空CI插件,用buildx构建多架构Docker镜像.
特征
无需推送即可构建
使用自定义注册表
需要时基于现有标记生成
推送至多个注册表/转发
如果满足以下条件,它将自动生成buildkit配置以使用自定义CA证书:
未设置
buildkit_config
提供了自定义的
registry
/logins
值文件存在
/etc/docker/certs.d/<registry-value>/ca.crt
注意!要装载自定义CA,您可以使用Woodpicker CI runner配置环境
WOODPECKER_BACKEND_DOCKER_VOLUMES
,其值为/etc/ssl/certs:/etc/ssl/certs:ro,/etc/docker/certs.d:/etc/docker/certs.d:ro
.并在runner服务器主机上创建了带有CA证书的文件/etc/docker/certs.d/<registry-value>/ca.crt
.
设置
Settings Name | Default | Description |
---|---|---|
dry-run | false | 禁用docker推送 |
repo | none | 设置图像的存储库名称(可以是列表) |
username | none | 设置要进行身份验证的用户名 |
password | none | 设置要进行身份验证的密码/令牌 |
email | none | 设置要进行身份验证的电子邮件地址 |
registry | https://index.docker.io/v1/ | 设置docker注册表以进行身份验证 |
dockerfile | Dockerfile | 设置用于图像生成的dockerfile |
tag /tags | none | 设置要用于图像的存储库标记 |
platforms | none | 为构建设置目标平台 |
auto_tag
如果设置为true,它将在标记事件或默认分支上使用default_tag
("latest"). 如果它是一个标记事件,它还将采用sem版本控制并相应地添加标记(x
, x.x
and x.x.x
). 如果它不是标记事件,并且没有默认分支,则会跳过自动标记.
例子
publish-next-agent:
image: woodpeckerci/plugin-docker-buildx
secrets: [docker_username, docker_password]
settings:
repo: woodpeckerci/woodpecker-agent
dockerfile: docker/Dockerfile.agent.multiarch
platforms: windows/amd64,darwin/amd64,darwin/arm64,freebsd/amd64,linux/amd64,linux/arm64/v8
tag: next
when:
branch: ${CI_REPO_DEFAULT_BRANCH}
event: push
publish:
image: woodpeckerci/plugin-docker-buildx
settings:
platforms: linux/386,linux/amd64,linux/arm/v6,linux/arm64/v8,linux/ppc64le,linux/riscv64,linux/s390x
repo: codeberg.org/${CI_REPO_OWNER}/hello
registry: codeberg.org
tags: latest
username: ${CI_REPO_OWNER}
password:
from_secret: cb_token
docker-build:
image: woodpeckerci/plugin-docker-buildx
settings:
repo: codeberg.org/${CI_REPO_OWNER}/hello
registry: codeberg.org
dry_run: true
output: type=oci,dest=${CI_REPO_OWNER}-hello.tar
高级设置
Settings Name | Default | Description |
---|---|---|
mirror | none | 设置注册表镜像以提取映像 |
storage_driver | none | 设置docker守护程序存储驱动程序 |
storage_path | /var/lib/docker | 设置docker守护程序存储路径 |
bip | none | 允许docker守护进程绑定ip地址 |
mtu | none | 设置docker后台进程自定义mtu设置 |
custom_dns | none | 设置自定义docker后台进程dns服务器 |
custom_dns_search | none | 设置自定义docker后台进程dns搜索域 |
insecure | false | 允许docker守护进程使用不安全的注册表 |
ipv6 | false | 启用docker守护进程IPv6支持 |
experimental | false | 启用docker后台进程实验模式 |
debug | false | 为docker守护进程启用详细调试模式 |
daemon_off | false | 禁用docker后台进程的启动 |
buildkit_config | none | 设置docker的内容 构建工具包TOML配置 |
tags_file | none | 用指定文件中的值覆盖“标记”选项 |
context | . | 设置要使用的生成上下文的路径 |
auto_tag | false | 根据git分支和git标记自动生成标记名,通过“tags”提供的标记被添加到auto_tag中,不带后缀 |
default_suffix" /auto_tag_suffix | none | 生成具有给定后缀的标记名 |
default_tag | latest | 覆盖在启用“auto_tag”的情况下生成时使用的默认标记名 |
label /labels | none | 设置用于图像的标签,格式为<name>=<value> |
default_labels /auto_labels | true | 基于git信息设置docker图像标签 |
build_args | none | 为生成设置自定义生成参数 |
build_args_from_env | none | 将环境变量作为自定义参数转发到生成 |
quiet | false | 启用生成输出的抑制 |
target | none | 设置要使用的生成目标 |
cache_from | none | 设置要视为缓存源的图像 |
pull_image | true | 强制在生成时提取基本映像 |
compress | false | 允许使用gzip压缩生成上下文 |
config | none | 设置docker守护进程json-config的内容 |
purge | true | 允许在生成结束时清除docker环境 |
no_cache | false | 禁用缓存的中间容器的使用 |
add_host | none | 设置附加主机:ip映射 |
output | none | 格式设置生成输出type=<type>[,<key>=<value>] |
logins | none | 用于登录多个注册表的选项 |
多注册表推送示例
settings:
repo: a6543/tmp,codeberg.org/6543/tmp
tag: demo
logins:
- registry: https://index.docker.io/v1/
username: a6543
password:
from_secret: docker_token
- registry: https://codeberg.org
username: "6543"
password:
from_secret: cb_token