Docker
Docker 构建步骤允许在您的构建中启动 构建
、 推送
和 tag
Docker命令。
tip
对于
run
命令,使用 容器包装器。
如果您需要将新构建的镜像推送到注册表,您可以通过配置 Docker Registry Connections构建功能来授权到 Docker 或 Podman 注册表,具体如下:
打开 项目设置并导航到 连接设置选项卡。
向您的项目添加一个新的 Docker 或 Podman 连接。
在您的 构建配置设置中,使用上一步创建的连接配置 Docker 注册表连接 构建功能。
如果您的 VCS 仓库中存在一个 Dockerfile ,并且您基于此仓库创建了一个 TeamCity 项目,TeamCity 将 自动检测它,并提供使用此运行程序创建构建步骤的选项。
note
Docker 构建步骤是 TeamCity-Docker/Podman 集成工具集的一部分。 请参考本文档文章,了解有关软件需求、支持的环境以及此集成的其他常见方面的信息: 将 TeamCity 与容器管理器集成。
根据所选的 Docker 命令,构建步骤提供以下设置:
命令 | 形参 | 描述 |
---|---|---|
| Dockerfile 源码 | 根据所选的源,下面的设置会有所不同。 可用选项包括 File、 URL 和 File content。 |
文件路径 | 适用于 File 源类型: 指定到 Dockerfile 的路径。 路径应相对于 build checkout directory。 | |
上下文文件夹 | 适用于 File 源类型: 为 | |
文件的 URL | 适用于 URL 源类型: URL可以引用三种资源之一:Git仓库、预打包的 tarball 上下文和普通文本文件。 参见 Docker 文档 获取详细信息。 | |
文件内容 | 适用于 File Content 源类型: 您可以在字段中输入 Dockerfile 的内容。 | |
镜像平台 | 选择 \<Any\>(默认)、Linux 或 Windows。 | |
镜像名称:标签 | 提供一个换行分隔的镜像名称: 标签列表。 | |
| 向 | |
| 推送后从代理中移除镜像 | 如果选中,TeamCity 将在步骤结束时删除带有 |
镜像名称:标签 | 提供一个换行分隔的镜像名称: 标签列表。 | |
其他 | 命令名称 | 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 命令来构建多架构镜像。
将新的 Docker 运行器添加到您的构建配置中。
将其 Docker 命令 选项切换为“other...”。
在 命令名称 字段中输入“buildx”,在 命令的附加参数 中输入“create --use”。 TeamCity 会将这些字段组合成一个
docker buildx create --use
命令。对于每个新命令,重复步骤 1~3。 例如,您可能想要添加额外的节点(
docker buildx create --append --name mybuild <context_name>
)或调用docker buildx build <path> --platform linux/amd64,linux/arm64
来开始构建并生成图像。
Thanks for your feedback!