Docker 安装部署 TeamCity
# 服务端(Server)与代理端(Agent)部署到一起
# 编写 docker-compose.yaml
配置文件
参考 Docker Compose 官方示例 (opens new window)
version: "3"
services:
server:
image: jetbrains/teamcity-server
container_name: teamcity-server
volumes:
# 数据和日志映射到宿主机
- ./data/server:/data/teamcity_server/datadir
- ./logs/server:/opt/teamcity/logs
environment:
# 关闭 https 验证
- "TEAMCITY_HTTPS_PROXY_ENABLED=false"
- "TEAMCITY_SERVER_MEM_OPTS=-Xmx2g -XX:MaxPermSize=270m -XX:ReservedCodeCacheSize=350m"
ports:
- "8111:8111"
user: root:root
privileged: true
restart: always
agent:
image: jetbrains/teamcity-agent:2021.1.4-linux-sudo
container_name: teamcity-agent-linux
volumes:
# docker 映射到容器内,不然不能用 docker 构建
- /var/run/docker.sock:/var/run/docker.sock
# 可以映射配置文件,也可以通过环境变量,这里没有复杂的配置暂时以环境变量指定
# - ./conf/agent1:/data/teamcity_agent/conf
## 设置 Server 的地址及 秘钥
environment:
- "SERVER_URL=http://teamcity-server:8111"
- "AGENT_NAME=agent-linux"
- "DOCKER_IN_DOCKER=start"
user: root:root
privileged: true
restart: always
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# Agent 配置文件 buildAgent.properties
参考
name=Agent-linux
ownPort=9090
serverUrl=http\://teamcity-server\:8111
workDir=../work
tempDir=../temp
systemDir=../system
teamcity.docker.use.sudo=true
authorizationToken=5881d299516ed1b39a3ce8c2dc05ee00
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
# 可能会遇到的问题:
not a writeable directory
数据权限的问题, Server 或者 Agent 没有写入文件的权限;- 目前暂时使用
chmod 777 -R data/
来给文件夹设置所有权限 - 参考 stackoverflow (opens new window)
- 目前暂时使用
docker.server.version doesnt exist
Agent 内 docker 启动不成功问题- 设置 Agent 的环境变量为
DOCKER_IN_DOCKER=start
- 设置 Agent 容器内的用户权限为 root;
-u root
或user: root:root
- 使用 包含
sudo
权限的 Agent 镜像,如:jetbrains/teamcity-agent:2021.1.4-linux-sudo
- 参考 官方说明 (opens new window)
- 设置 Agent 的环境变量为
# 服务端(Server)与代理端(Agent) 分开部署
参考 Docker Compose 官方示例 (opens new window)
# 服务端 docker-compose.yaml
配置文件
version: "3"
services:
server:
image: jetbrains/teamcity-server
container_name: teamcity-server
volumes:
# 数据和日志映射到宿主机
- ./data/server:/data/teamcity_server/datadir
- ./logs/server:/opt/teamcity/logs
environment:
# 关闭 https 验证
- "TEAMCITY_HTTPS_PROXY_ENABLED=false"
- "TEAMCITY_SERVER_MEM_OPTS=-Xmx2g -XX:MaxPermSize=270m -XX:ReservedCodeCacheSize=350m"
ports:
- "8111:8111"
user: root:root
privileged: true
restart: always
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 代理端 docker-compose.yaml
配置文件
version: "3"
services:
server:
image: jetbrains/teamcity-server
container_name: teamcity-server
volumes:
# 数据和日志映射到宿主机
- ./data/server:/data/teamcity_server/datadir
- ./logs/server:/opt/teamcity/logs
environment:
# 关闭 https 验证
- "TEAMCITY_HTTPS_PROXY_ENABLED=false"
- "TEAMCITY_SERVER_MEM_OPTS=-Xmx2g -XX:MaxPermSize=270m -XX:ReservedCodeCacheSize=350m"
ports:
- "8111:8111"
user: root:root
privileged: true
restart: always
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
上次更新: 2022/02/07, 15:11:59