TeamCity On-Premises 2026.2 Help

Docker

Docker 构建步进允许在构建过程中启动 docker build、 docker push、 docker tag 及其他 Docker命令。

前提条件

如需将新构建的镜像推送到 Docker 注册表,必须先进行授权。

  1. 打开 项目设置并导航到 连接设置选项卡。

  2. 向您的项目添加新的 Docker 注册表连接。

  3. 在 构建配置设置中,使用上一步创建的连接配置 Docker 注册表连接 构建功能。

通用设置

根据所选的 Docker 命令,构建步骤提供以下设置:

命令

形参

描述

构建

Dockerfile 源码

根据所选的源,下面的设置会有所不同。 可用选项包括 File、 URL 和 File content。

文件路径

适用于 File 源类型:

指定到 Dockerfile 的路径。 路径应相对于 build checkout directory。

上下文文件夹

适用于 File 源类型:

为 docker build 指定 上下文。 如果为空,则将使用 Dockerfile 的父目录。

文件的 URL

适用于 URL 源类型:

URL可以引用三种资源之一:Git仓库、预打包的 tarball 上下文和普通文本文件。 参见 Docker 文档 获取详细信息。

文件内容

适用于 File Content 源类型:

您可以在字段中输入 Dockerfile 的内容。

镜像平台

选择 \<Any\>(默认)、Linux 或 Windows。

镜像名称:标签

提供一个换行分隔的镜像名称: 标签列表。

构建 命令的附加参数

向 docker build 命令提供额外的参数。 参阅 Docker 文档 了解详情。

推送

推送后从代理中移除镜像

如果选中,TeamCity 将在步骤结束时删除带有 docker rmi 的镜像。

镜像名称:标签

提供一个换行分隔的镜像名称: 标签列表。

其他

命令名称

Docker 子命令,如 推送 或 tag。 对于 run 命令,请使用 容器包装器。

工作目录

如果 构建工作目录 与 签出目录 不同,您需要指定构建工作目录。

命令的附加参数

将会传递给 docker 命令的额外参数。

通过 sudo 运行 Docker

您可以通过 sudo 在 TeamCity 代理上强制启动 Docker 命令。 在 构建代理配置文件 或代理的系统属性中添加 teamcity.docker.use.sudo=true 设置。 在代理启动时,TeamCity 代理日志将告知您, sudo 前缀用于运行 Docker 命令。

要为 sudo 命令配置 sudoers 文件,请按照以下方式使用 visudo:

buildagentuser ALL=(ALL) NOPASSWD:SETENV:<full_path_to_docker>

我们建议从 sudoers 文件中删除(或注释) 默认需要tty 行,以防止 与 docker login 相关的问题。

构建多架构镜像

其他... 命令选项允许您执行任何自定义 docker …… 命令。 例如,您可以调用 buildx 命令来构建多架构镜像。

  1. 将新的 Docker 运行器添加到您的构建配置中。

  2. 将其 Docker 命令 选项切换为“other...”。

  3. 在 命令名称 字段中输入“buildx”,在 命令的附加参数 中输入“create --use”。 TeamCity 会将这些字段组合成一个 docker buildx create --use 命令。

  4. 对于每个新命令,重复步骤 1~3。 例如,您可能想要添加额外的节点(docker buildx create --append --name mybuild <上下文名称> )或调用 docker buildx build <路径> --platform linux/amd64,linux/arm64 来开始构建并生成图像。

构建自定义 TeamCity 镜像

请参阅以下文章,了解有关使用和构建 TeamCity 服务器和代理镜像的更多信息:

2026年 9月 11日