如果我们需要将8111映射为80端口,我们可以这么配置:
5. 点击【创建服务】按钮,创建服务
创建完成后,可以在服务列表看到我们所创建的服务:
注意
至此,TeamCity Server服务创建完成。刚才我们在服务访问方式中选择了【提供公网访问】,TKV自动为我们创建了一个负载均衡实例,以提供外网访问。这时,我们使用IP即可访问对应的服务。
如刚创建的:
创建Teamcity Agent代理服务Server创建好了,我们还需要创建TeamCity Build Agent来为我们构建代码。也就是构建过程还得由专门的构建代理来提供服务。
TeamCity Build Agent官方镜像地址如下:
https://hub.docker.com/r/jetbrains/teamcity-agent/
我们可以通过以下命令在本地跑起来:
docker run -it -e SERVER_URL="<url to TeamCity server>" \
-v <path to agent config folder>:/data/teamcity_agent/conf \
jetbrains/teamcity-agent
跑起来之后,我们需要在Server的管理中心来连接和授权。
配置特权级容器
值得注意的是,如果我们使用TeamCity的代理来构建Docker容器,那么我们势必需要使用到主机的Docker守护进程,这时,我们可以使用特权级容器来解决这个问题,如下面命令所示:
docker run -it -e SERVER_URL="<url to TeamCity server>" \
-v <path to agent config folder>:/data/teamcity_agent/conf \
-v docker_volumes:/var/lib/docker \
--privileged -e DOCKER_IN_DOCKER=start \
jetbrains/teamcity-agent
使用privileged参数,容器内的root才拥有真正的root权限,并且Docker将允许访问主机上的所有设备,甚至允许我们在容器中启动Docker容器。接下来在腾讯云TKV这边,我们也需要使用到特权级容器,以便于我们使用TeamCity来构建Docker容器镜像,以及推送镜像。
TeamCity Agent基础镜像包括
由于在接下来的步骤中需要使用到Agent来构建代码,因此我们需要知道其包含的内容:
· ubuntu:bionic(Linux)
· microsoft / windowsservercore或microsoft / nanoserver(Windows)
· AdoptOpenJDK 8,JDK 64位
· git
· mercurial(除了nanoserver镜像)
· .NET Core SDK(可以构建.NET Core!!)
· MSBuild工具(基于windowsservercore的镜像)
· docker-engine(Linux)
创建Teamcity Agent代理服务
创建TeamCity Agent容器服务主要分为以下几个步骤:
1. 创建服务,设置镜像
镜像名称为:jetbrains/teamcity-agent,如下图所示(注意是直接输入):