Docker Compose
Docker Compose 构建步骤允许启动 Docker Compose构建服务,并在构建结束时将其关闭。 使用这个运行器,您可以运行多容器 Docker 应用。
如果您需要从私有仓库中拉取一个基础镜像,或者将新构建的镜像推送到一个注册表,您可以按照以下方式对 Docker 或 Podman 注册表进行授权:
在项目设置中,从侧边栏选择 连接 ,并按照 配置与 Docker 的连接 中的说明,将新的 Docker 或 Podman 连接添加到您的项目中。
在您的构建配置设置中,配置 Docker 注册表连接 构建功能,添加在上一步中创建的连接。
note
Docker Compose 构建步骤是 TeamCity-Docker/Podman 集成工具集的一部分。 请参考本文档文章,了解有关软件需求、支持的环境以及此集成的其他常见方面的信息: 将 TeamCity 与容器管理器集成。
可用的步骤执行策略在 这里 描述。
在 TeamCity 代理上安装 Docker Compose 有两种选择:
作为一个 独立二进制文件;
为了更好的向后兼容性,TeamCity 首先检查是否安装了独立的 Compose 二进制文件。 如果是的话,运行器就会使用过时的 Compose V1 语法来运行命令(例如, docker-compose up
)。 否则,运行器会寻找已安装的插件并切换到现代的 Compose V2 语法(例如, docker compose up
)。
Docker Compose 运行器支持一个或多个带有在构建过程中将使用的服务描述的 Docker Compose YAML 文件。 向 docker-compose.yml
文件的路径应相对于 构建检出目录。 当指定多个文件时,用空格分隔它们。
一台 构建代理 将在构建过程中执行以下 docker-compose
命令:
# The commands are executed on the current working directory, where the docker-compose file resides.
docker-compose -f <docker-compose.yml> [-f <docker-compose2.yml>] up -d
# At the end of the build, for each Docker Compose build step the build agent will run:
docker-compose -f <docker-compose.yml> [-f <docker-compose2.yml>] down -v
note
如果未找到独立的 Docker 安装 ,则使用 Compose V2 语法(例如,
docker compose down
替代docker-compose down
)。
如果启用了 每次运行强制拉取 选项, docker-compose pull
将在 docker-compose up
命令之前运行。
当使用 Docker Compose 与支持 HEALTHCHECK 的镜像时,TeamCity 将等待所有支持此参数的容器的 正常
状态。
如果 Docker Compose 的启动成功,TeamCity 代理将注册包含 Docker Compose 默认网络名称的 TEAMCITY_DOCKER_NETWORK
环境变量。 当它在一些构建运行程序中使用时,此网络会透明传递给 容器包装器。