Docker安装TeamCity持续集成

2,198 阅读1分钟

这是我参与8月更文挑战的第2天,活动详情查看:8月更文挑战

1.使用Docker安装TeamCity

1.1 下载teamcity-server镜像

docker pull jetbrains/teamcity-server

1.2 创建数据挂载目录

mkdir -p /usr/local/docker/teamcity/datadir
mkdir -p /usr/local/docker/teamcity/logs

chmod 777 /usr/local/docker/teamcity/datadir
chmod 777 /usr/local/docker/teamcity/logs

1.3 运行teamcity-server服务

docker run -it --name teamcity-server-instance -d  \
    -v /usr/local/docker/teamcity/datadir:/data/teamcity_server/datadir \
    -v /usr/local/docker/teamcity/logs:/opt/teamcity/logs  \
    -p 8111:8111 \
    jetbrains/teamcity-server

1.4 访问teamcity-server服务

teamcity-server访问地址:192.168.79.128:8111。点击Proceed进行下一步

image.png

选择需要存储数据的数据库(TeamCity 的一些构建历史、用户信息、构建结果等这类数据是需要放在关系型数据库上的)。

image.png

我这里选择mysql进行存储,首先点击Download JDBC driver 过程可能需要等待会,然后填写数据库连接等信息,点击Proceed进行下一步

image.png

这里需要注意下,我使用的windows本机mysql数据库,没有设置对外远程连接,需要设置对外远程连接

use mysql
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
flush privileges;

滑到页面最下面,勾选同意协议,点击Continue进行下一步

image.png

设置管理员账户

image.png

下一步就OK了,进系统首页了

image.png

2.Docker安装TeamCity-agent

此时TeamCity-Server是没有Agent连接的

image.png

docker run -it --name teamcity-agent  -e SERVER_URL="192.168.0.100:8111"  \
-u 0 \
-v /usr/local/docker/teamcity-agent:/data/teamcity_agent/conf \
-v /var/run/docker.sock:/var/run/docker.sock  \
-v /opt/buildagent/work:/opt/buildagent/work \
-v /opt/buildagent/temp:/opt/buildagent/temp \
-v /opt/buildagent/tools:/opt/buildagent/tools \
-v /opt/buildagent/plugins:/opt/buildagent/plugins \
-v /opt/buildagent/system:/opt/buildagent/system \
-d jetbrains/teamcity-agent

这里的SERVER_URLTeamCity-Server的地址

Agent进行授权

image.png

授权后就连连接上了

image.png