TeamCity On-Premises 2025.07 Help

配置与 Docker 的连接

预配置的 Docker 连接允许您:

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

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

您可以在 项目设置 | 连接 页面上配置一个 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 守护进程配置文件 ,以包含 insecure-registries 数组值。 示例:

    { "insecure-registries" : ["http://my-registry:5000"] }

    这足以允许通过 HTTP 连接到私有注册表。

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

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

TeamCity 支持多个代理在同一台机器上并行运行构建,并在这些构建过程中连接到 Docker 注册表的情况。 此设置需要使用不同的 Docker 环境:在一个构建结束时执行的 docker logout 命令不应影响另一个代理上的并行构建。

要进行配置,您需要指定每个代理的 .docker 目录的位置。 为此,请将 env.DOCKER_CONFIG=%teamcity.agent.home.dir%/system/.docker 环境变量定义为 构建配置参数 ,或在每个代理的 buildAgent.properties 文件中定义。

最后修改日期: 2025年 8月 12日