3分钟上手!TeamCity Docker Compose 极速部署指南:从单节点到多服务器集群

3分钟上手!TeamCity Docker Compose 极速部署指南:从单节点到多服务器集群

【免费下载链接】teamcity-docker-samples TeamCity docker compose samples 【免费下载链接】teamcity-docker-samples 项目地址: https://gitcode.com/gh_mirrors/te/teamcity-docker-samples

你是否还在为CI/CD环境搭建浪费数小时?是否因多节点配置复杂望而却步?本文将通过实战案例,教你用Docker Compose一键部署TeamCity(持续集成/持续部署,Continuous Integration/Continuous Deployment)环境,从单节点开发测试到企业级多服务器集群全覆盖,全程代码可复制,3分钟启动你的自动化构建流水线。

读完本文你将掌握:

  • 单节点TeamCity环境的3步极速部署
  • Windows/Linux跨平台配置差异解决方案
  • 多服务器集群架构设计与负载均衡实现
  • agents自动注册与权限管理最佳实践
  • 数据持久化与日志管理进阶技巧

一、环境准备:5分钟检查清单

1.1 系统要求

环境类型CPU核心内存磁盘空间操作系统版本Docker版本
开发测试≥2核≥4GB≥20GBUbuntu 20.04+/Windows 10+≥20.10.12
生产环境≥4核≥8GB≥50GBUbuntu 22.04+/Windows Server 2019+≥23.0.1

1.2 基础软件安装

# Ubuntu系统
sudo apt update && sudo apt install -y docker.io docker-compose
sudo systemctl enable --now docker

# Windows系统(PowerShell管理员模式)
choco install docker-desktop -y

1.3 源码获取

git clone https://gitcode.com/gh_mirrors/te/teamcity-docker-samples
cd teamcity-docker-samples

二、单节点部署:3步启动CI/CD流水线

2.1 目录结构解析

teamcity-docker-samples/
├── compose-ubuntu/       # Linux环境配置
│   ├── agents/           # 构建代理配置
│   │   ├── agent-1/conf/ # 代理1配置文件
│   │   └── agent-2/conf/ # 代理2配置文件
│   ├── data_dir/         # 服务器数据持久化目录
│   └── docker-compose.yml # 主配置文件
└── compose-windows/      # Windows环境配置
    └── docker-compose.yml

2.2 Linux环境部署(推荐)

# 进入Ubuntu配置目录
cd compose-ubuntu

# 启动服务(后台运行)
docker-compose up -d

# 查看服务状态
docker-compose ps

执行成功后将显示类似输出:

      Name                    Command               State           Ports         
----------------------------------------------------------------------------------
compose-ubuntu_agent-1_1   /run-services.sh          Up                             
compose-ubuntu_agent-2_1   /run-services.sh          Up                             
compose-ubuntu_server_1    /opt/teamcity/bin/run...   Up      0.0.0.0:8112->8111/tcp

2.3 首次访问与配置

  1. 打开浏览器访问:http://localhost:8112
  2. 首次登录创建管理员账户
  3. 进入Agents → Unauthorized页面授权代理: mermaid

2.4 Windows环境部署

# 进入Windows配置目录
cd compose-windows

# 启动服务
docker-compose up -d

# 获取服务器IP并打开浏览器
$serverIP = docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' teamcitywindows_server_1
explorer "http://$serverIP`:8111"

注意:Windows容器需在Docker Desktop中启用"使用Windows容器"选项,且仅支持Windows Server或专业版系统。

三、多节点集群:企业级高可用方案

3.1 架构设计

mermaid

3.2 集群部署步骤

# 进入多节点配置目录
cd multinode

# 启动集群服务(首次启动需5-10分钟初始化数据库)
docker-compose up -d

# 查看节点状态
docker-compose ps | grep teamcity-server

成功启动后,Nginx会自动分发请求到两个服务器节点,实现负载均衡和故障转移。

3.3 节点配置验证

  1. 访问http://localhost:8111/admin/admin.html?item=nodesConfiguration
  2. 确认显示两个节点状态为"Running"
  3. 测试故障转移:停止主节点后观察服务是否自动切换
# 模拟主节点故障
docker-compose stop teamcity-server-1

# 查看次节点是否接管服务
curl -I http://localhost:8111

四、核心配置深度解析

4.1 Docker Compose核心参数

以compose-ubuntu/docker-compose.yml为例:

version: '3.8'
services:
  server:
    image: jetbrains/teamcity-server:${TEAMCITY_VERSION:-2023.11}
    ports:
      - "8112:8111"
    volumes:
      - ./data_dir:/data/teamcity_server/datadir
      - ./teamcity-server-logs:/opt/teamcity/logs
    restart: unless-stopped
    
  agent-1:
    image: jetbrains/teamcity-agent:${TEAMCITY_VERSION:-2023.11}
    volumes:
      - ./agents/agent-1/conf:/data/teamcity_agent/conf
      - /var/run/docker.sock:/var/run/docker.sock
    environment:
      - SERVER_URL=http://server:8111
    depends_on:
      - server

关键参数说明:

  • volumes: 数据持久化配置,确保重启后数据不丢失
  • restart: unless-stopped: 服务异常退出时自动重启
  • depends_on: 定义服务启动顺序,确保服务器先于代理启动

4.2 版本控制最佳实践

创建.env文件统一管理版本号:

# .env文件内容
TEAMCITY_VERSION=2023.11
POSTGRES_VERSION=14-alpine

使用方法:

# 复制示例配置
cp .env.example .env

# 编辑版本号
nano .env

# 应用配置启动
docker-compose up -d

五、数据管理与维护

5.1 数据备份策略

# 创建数据备份脚本 backup.sh
#!/bin/bash
BACKUP_DIR=/backup/teamcity
TIMESTAMP=$(date +%Y%m%d_%H%M%S)

# 创建备份目录
mkdir -p $BACKUP_DIR

# 备份服务器数据
docker exec teamcity_server_1 tar -czf - /data/teamcity_server/datadir | \
  cat > $BACKUP_DIR/datadir_$TIMESTAMP.tar.gz

# 备份数据库(多节点环境)
docker exec teamcity_postgres_1 pg_dump -U test buildserver > \
  $BACKUP_DIR/db_$TIMESTAMP.sql

# 保留最近30天备份
find $BACKUP_DIR -type f -mtime +30 -delete

5.2 日志管理

# 实时查看服务器日志
docker-compose logs -f server

# 查看代理构建日志
docker-compose exec agent-1 cat /opt/teamcity-agent/logs/teamcity-agent.log

# 日志轮转配置(/etc/logrotate.d/teamcity)
/data/web/disk1/git_repo/gh_mirrors/te/teamcity-docker-samples/compose-ubuntu/teamcity-server-logs/*.log {
    daily
    missingok
    rotate 14
    compress
    delaycompress
    notifempty
}

六、常见问题解决方案

6.1 代理无法连接服务器

mermaid

6.2 数据迁移步骤

# 1. 在新服务器安装相同版本Docker和Docker Compose
# 2. 复制数据卷到新服务器
scp -r ./data_dir user@new_server:/path/to/teamcity-docker-samples/compose-ubuntu/

# 3. 在新服务器启动服务
cd /path/to/teamcity-docker-samples/compose-ubuntu
docker-compose up -d

6.3 资源优化配置

针对低配置环境,可调整docker-compose.yml限制资源使用:

services:
  server:
    deploy:
      resources:
        limits:
          cpus: '2'
          memory: 4G
    environment:
      - TEAMCITY_SERVER_OPTS=-Xmx2g -XX:MaxPermSize=256m

七、总结与进阶路线

通过本文学习,你已掌握TeamCity从单节点到多服务器集群的完整部署流程。建议进阶学习以下内容:

  1. 构建管道(Build Pipeline)设计

    • 多阶段构建配置
    • 测试自动化集成
    • 部署环境管理
  2. 高级安全配置

    • HTTPS证书配置
    • 代理认证与授权
    • 敏感信息加密存储
  3. 性能优化

    • 构建缓存策略
    • 并行构建配置
    • 资源动态分配

mermaid

【免费下载链接】teamcity-docker-samples TeamCity docker compose samples 【免费下载链接】teamcity-docker-samples 项目地址: https://gitcode.com/gh_mirrors/te/teamcity-docker-samples

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值