TeamCity On-Premises 2024.03 Help

配置与 Docker 的连接

预配置的 Docker 连接允许您:

  • 在运行构建之前,请登录到经过身份验证的 Docker 或 Podman 注册库 / 构建后退出登录;

  • 在构建后清理已发布的镜像(目前Podman不可用)。

您可以在 Project Settings | Connections 页面上配置 Docker Registry 连接。 TeamCity 支持连接到 docker.io(默认)或私有 Docker 注册表。 一个项目中可以添加多个连接。 连接将在当前项目的所有子项目和构建配置中可用。

注册表地址格式

默认情况下,使用 https://docker.io。 如果一个运行构建的构建代理使用 Podman 而不是 Docker,那么必须将注册域添加到 registries.conf 文件中。 请查看以下文章以获取更多信息:如何管理 Linux 容器注册表

要连接到注册表,请使用以下格式: [http(s)://]主机名:端口

如果未指定协议,则默认使用 https 进行连接。

连接到私有云注册表

TeamCity 支持 Azure 容器注册表存储 Docker 和传统的 LXC 镜像。 您可以使用 Service principal(使用主体 ID 和密码作为连接凭据)或者 Admin account 进行身份验证。

Amazon Elastic Container Registry(AWS ECR)得到了支持:在配置连接时,请指定 AWS 区域和您的 AWS 安全凭证。

连接到不安全的注册表

要连接到不安全的注册表:

  1. 根据 Docker 文档 的说明,配置所有已安装 Docker 的 TeamCity 代理以便它们能够与不安全的仓库一起工作。 这足以允许通过 HTTP 连接到私有注册表。

  2. 为了通过自签名证书与不安全的注册表进行 HTTPS 连接,除了上述步骤以外,还需要将自签名证书导入到 TeamCity 服务器的 JVM 中,如 此处 所述。 您可以参考 Docker 文档中关于 使用自签名证书 的内容。

在一台机器上使用 Docker 运行多个代理

TeamCity 支持多个代理在同一台机器上并行运行构建,并在这些构建过程中连接到 Docker 注册表的情况。 此设置需要使用不同的 Docker 环境:在一个构建最后执行的 docker logout 命令不应影响另一个代理上的并行构建。
为了配置它,您需要指定每个代理的 .docker 目录的位置。 为此,请将 env.DOCKER_CONFIG=%teamcity.agent.home.dir%/system/.docker 环境变量定义为 构建配置参数,或在每个代理的 buildAgent.properties 文件中定义。

最后修改日期: 16日 7月 2024年