跳到主要内容

注册表

Woodpecker 提供了在仓库设置中添加容器注册表的能力。添加注册表允许您在管道中使用这些镜像作为步骤时,从容器注册表进行身份验证和拉取私有镜像。使用注册表凭据还可以帮助您避免从公共注册表拉取镜像时的速率限制。

来自私有注册表的镜像

您必须在 UI 中提供注册表凭据,以便拉取在 YAML 配置文件中定义的私有容器镜像。

这些凭据永远不会暴露给您的步骤,这意味着它们不能用于推送,并且可以安全地用于拉取请求等。推送到注册表仍然需要为适当的插件设置凭据。

使用私有镜像的示例配置:

 steps:
- name: build
+ image: gcr.io/custom/golang
commands:
- go build
- go test

Woodpecker 将注册表主机名与 YAML 中的每个镜像进行匹配。如果主机名匹配,则使用注册表凭据向您的注册表进行身份验证并拉取镜像。请注意,注册表凭据由 Woodpecker 代理使用,永远不会暴露给您的构建容器。

示例注册表主机名:

  • 镜像 gcr.io/foo/bar 的主机名为 gcr.io
  • 镜像 foo/bar 的主机名为 docker.io
  • 镜像 qux.com:8000/foo/bar 的主机名为 qux.com:8000

示例注册表主机名匹配逻辑:

  • 主机名 gcr.io 匹配镜像 gcr.io/foo/bar
  • 主机名 docker.io 匹配 golang
  • 主机名 docker.io 匹配 library/golang
  • 主机名 docker.io 匹配 bradrydzewski/golang
  • 主机名 docker.io 匹配 bradrydzewski/golang:latest

全局注册表支持

要使私有注册表全局可用,请查看服务器配置文档

GCR 注册表支持

有关配置 Google Container Registry 访问的具体详细信息,请查看这里的文档。

本地镜像

注意

为此,需要特权权限,仅对管理员可用。此外,这仅在使用单个代理时有效。

可以通过将 docker 套接字挂载为卷来构建本地镜像。

在项目根目录下有一个 Dockerfile

steps:
- name: build-image
image: docker
commands:
- docker build --rm -t local/project-image .
volumes:
- /var/run/docker.sock:/var/run/docker.sock

- name: build-project
image: local/project-image
commands:
- ./build.sh