跳转至

TeamCity JetBrains CI服务

概要: 部署环境: CentOS 7

创建时间: 2023.08.03 00:06:42

更新时间: 2023.08.03 00:24:38

使用Docker形式部署TeamCity

准备工作

确保赋予映射到宿主机上的目录权限

Bash
1
2
3
4
5
mkdir -p /var/teamcity/data
mkdir -p /var/teamcity/logs
mkdir -p /var/teamcity/agent_conf
chown -R 1000:1000 /var/teamcity
chmod -R 777 /var/teamcity

直接使用Docker容器启动服务

部署TeamCity Server

Bash
1
2
3
4
5
docker run -it --name teamcity-server-instance \
    -v /var/teamcity/data:/data/teamcity_server/datadir \
    -v /var/teamcity/logs:/opt/teamcity/logs \
    -p 8111:8111 \
    jetbrains/teamcity-server
部署TeamCity Agent
Bash
1
2
3
docker run -it -e SERVER_URL="http://192.168.2.231:8111"  \ 
    -v /var/teamcity/agent_conf:/data/teamcity_agent/conf  \      
    jetbrains/teamcity-agent
打开设定好的网站,此处为http://192.168.2.231:8111,即可访问TeamCity页面:

使用docker-compose工具启动

docker-compose.yaml参考如下

YAML
version: '2'
services:
  teamcity_server:
    image: jetbrains/teamcity-server
    restart: always
    container_name: lzwang_teamcity_server
    ports:
      - 8111:8111
    volumes:
      - /root/teamcity/data:/data/teamcity_server/datadir
      - /root/teamcity/logs:/opt/teamcity/logs

  teamcity_agent:
    image: jetbrains/teamcity-agent 
    restart: always
    container_name: lzwang_teamcity_agent
    environment:
      - SERVER_URL="http://192.168.2.231:8111"
    volumes:
      - /var/teamcity/agent_conf:/data/teamcity_agent/conf

提示

经过测试,目前使用docker部署的TeamCity Agent,并不能在流水线步骤中使用在docker容器中运行的特性。如果要在流水线步骤中使用docker,必须直接部署在主机上。

在主机上直接部署Agent

获取安装包

当使用docker形式部署完成TeamCity Server后,登录进去,在agent选项卡点击install agent,选择Full ZIP file distribution,即可得到agent文件包

安装agent

Bash
yum install unzip -y
unzip buildAgentFull.zip -d /opt/teamcity/buildagent

配置agent

Bash
1
2
3
cd /opt/teamcity/buildagent/conf
cp buildAgent.dist.properties buildAgent.properties
vim buildAgent.properties
修改以下字段
Bash
1
2
3
serverUrl=http://192.168.2.231:8111 # Server的地址

name=TeamCityAgentCentOS7 # 可以随意填写

启动agent

Bash
bash /opt/teamcity/buildagent/bin/agent.sh start
此时可以在TeamCity上看到Agent已经出现,然后点击Authorize授权即可建立agent与server的连接

参考