当前位置: 首页 > article >正文

TeamCity Agent 配置完整教程(配合 Docker Compose 快速部署)

在《使用 Docker Compose 从零部署 TeamCity + PostgreSQL(详细新手教程)》中,我们成功部署了 TeamCity Server 和数据库服务。但要真正运行构建任务,还需要至少一个 Build Agent(构建代理)

本教程将继续补充,教你如何配置 TeamCity Agent,确保构建任务能够正常执行。


一、什么是 TeamCity Agent?

TeamCity 构建系统采用 主从架构

  • Server:管理构建配置、查看状态、处理 UI 界面
  • Agent:真正执行构建脚本,比如编译代码、运行测试、部署项目

每个 Agent 启动后需向 Server 注册并获得授权,之后才能参与构建任务。


二、添加 Agent 到 Docker Compose

1. 修改 docker-compose.yml

在已有的 Compose 配置中添加如下服务:

services:# TeamCity 服务teamcity-server:...# 数据库postgres:...teamcity-agent:image: jetbrains/teamcity-agent:latestcontainer_name: teamcity-agentdepends_on:- teamcity-serverenvironment:- SERVER_URL=http://teamcity-server:8111volumes:- /home/teamcity/agent:/data/teamcity_agent/confuser: "1000:1000"restart: unless-stoppedmem_limit: 4gcpus: 2.0

⚠️ 如果已经其他方式部署TeamCity服务,可删除teamcity-serverpostgres,并把- SERVER_URL=http://teamcity-server:8111修改为TeamCity服务访问地址

2. 创建 agent 配置目录

sudo mkdir -p /home/teamcity/agent
sudo chown -R 1000:1000 /home/teamcity/agent

这将用于存储 agent 的配置数据(授权信息等)。

3. 启动服务

docker compose up -d

此时 Agent 会尝试连接 TeamCity Server 并自动注册。


三、授权 Agent

  1. 登录 TeamCity 后台:

    http://<你的服务器IP>:8111
    
  2. 点击右上角齿轮图标 → 进入 Agents 页面

  3. Unauthorized Agents 栏中,找到刚上线的 Agent,点击 Authorize 即可

  4. 授权成功后,Agent 状态会变为 ConnectedIdle,表示可以分配构建任务


四、多个 Agent 如何管理?

你可以添加多个 agent,组成 agent pool,提高并发能力。例如:

  teamcity-agent-2:image: jetbrains/teamcity-agent:latestcontainer_name: teamcity-agent-2depends_on:- teamcity-serverenvironment:- SERVER_URL=http://teamcity-server:8111volumes:- /home/teamcity/agent2:/data/teamcity_agent/confuser: "1000:1000"restart: unless-stoppedmem_limit: 4gcpus: 2.0

⚠️ 每个 Agent 的配置目录应不同,否则会冲突。


五、构建任务绑定 Agent

在某些场景下,你可能希望某些任务只在特定 agent 上执行。设置方法:

  1. 编辑构建配置
  2. 进入 Agent Requirements
  3. 设置要求的系统属性、环境变量或 agent 名称

六、常见问题解决

❓ Agent 无法连接 Server?

  • 检查 SERVER_URL 是否正确:应使用容器网络中的服务名(如 http://teamcity-server:8111
  • 检查防火墙是否阻止 8111 端口
  • 查看 agent 日志:
docker logs -f teamcity-agent

❓ Agent 一直 unauthorized?

  • 登录 Web 后台 → Agents 页面 → 手动点击 Authorize
  • 如果不想每次手动授权,可以进入 TeamCity 管理 → Agent Authorization Rules,开启自动授权

七、总结

本文介绍了如何:

  • 在 Docker Compose 中添加并启动 TeamCity Agent
  • 授权 Agent 并连接 Server
  • 扩展多个 Agent 实例
  • 针对性分配构建任务

配合前一篇 TeamCity Server 部署教程,你现在拥有了一个完整的 CI 环境,能自动拉取代码、构建、测试、部署!

http://www.lryc.cn/news/2402964.html

相关文章:

  • 基于深度强化学习的Scrapy-Redis分布式爬虫动态调度策略研究
  • 在 Ubuntu 24.04 LTS 上安装 Jenkins 并配置全局工具(Git、JDK、Maven)
  • Tika Server:企业级文档内容解析的轻量级服务化方案
  • LMG1020YFFR 电子元器件详解
  • 防爆型断链保护器的应用场景有哪些?
  • leetcode_206 反转链表
  • OPenCV CUDA模块光流------高效地执行光流估计的类BroxOpticalFlow
  • 高考:如何合理选择学科、专业以及职业
  • K8S认证|CKS题库+答案| 3. 默认网络策略
  • HTTP、WebSocket、SSE 对比
  • Linux编程:1、文件编程
  • Kyosan K5BMC ELECTRONIC INTERLOCKING MANUAL 电子联锁
  • 【Spark征服之路-2.3-Spark运行架构】
  • PART 6 树莓派小车+QT (TCP控制)
  • 软珊瑚成分 CI-A:靶向口腔癌细胞的 “氧化利剑” 与 ERK 密码
  • Cilium动手实验室: 精通之旅---4.Cilium Gateway API - Lab
  • 【芯片设计- RTL 数字逻辑设计入门 4.2 -- 组合逻辑赋值 + 时序逻辑状态保持】
  • 如何使用索引和条件批量更改Series数据
  • Java转Go日记(六十):gin其他常用知识
  • 89.实现添加收藏的功能的后端实现
  • v1.0.1版本更新·2025年5月22日发布-优雅草星云物联网AI智控系统
  • 如何创造出一种不同于程序语言的人与机器自然交互语言?
  • 宝塔think PHP8 安装使用FFmpeg 视频上传
  • 26.【新型数据架构】-零ETL架构
  • 静态相机中的 CCD和CMOS的区别
  • 【MySQL基础】数据库的备份与还原
  • bug:undefined is not iterable (cannot read property Symbol(Symbol.iterator))
  • 为UE5的Actor添加能够读写姿态的功能
  • 机器学习:支持向量机(SVM)原理解析及垃圾邮件过滤实战
  • LLM Agent 如何颠覆股价预测的传统范式