准备
docker-compose 配置项目地址: https://github.com/JetBrains/teamcity-docker-samples
teamCity 与teamAgent的docker-compose.yml 配置文件
[[teamcity-docker-samples-master.zip]]
以下docker-compose-ubuntu 为例:
修改配置文件
在这里插入图片描述
.evn 可以把docker-composer配置的静态的属性配置到这个文件夹例,在docker-compose里使用
配置信息
version: '3.1'
# Default ${TEAMCITY_VERSION} is defined in .env file
# ./buildserver_pgdata - Posgres DB data
# ./data_dir - TeamCity data directory
# ./teamcity-server-logs - logs of primary TeamCity server
# ./agents/agent-1/conf - configuration directory for the first build agent
# ./agents/agent-1/conf - configuration directory for the second build agent
services:
nginx:
db:
image: postgres:latest
restart: always
environment:
- POSTGRES_PASSWORD=teamcity_password
- POSTGRES_USER=teamcity_user
- POSTGRES_DB=teamcity_db
- PG_DATA=/var/lib/postgresql/data
volumes:
- ./buildserver_pgdata:/var/lib/postgresql/data
ports:
- 5433:5432
teamcity:
image: jetbrains/teamcity-server:${TEAMCITY_VERSION}
ports:
- "8112:8111"
volumes:
- ./data_dir:/data/teamcity_server/datadir
- ./teamcity-server-logs:/opt/teamcity/logs
depends_on:
- db
teamcity-agent-1:
image: jetbrains/teamcity-agent:${TEAMCITY_VERSION}-linux-sudo
privileged: true
ports:
- "9000-18000:9000-18000"
volumes:
- ./agents/agent-1/conf:/data/teamcity_agent/conf
- /var/run/docker.sock:/var/run/docker.sock
- ./agents/agent-1/work:/opt/buildagent/work
- ./agents/agent-1/temp:/opt/buildagent/temp
- ./agents/agent-1/system:/opt/buildagent/system
environment:
- DOCKER_IN_DOCKER=start
teamcity-agent-2:
image: jetbrains/teamcity-agent:${TEAMCITY_VERSION}-linux-sudo
privileged: true
ports:
- "9000-18000:9000-18000"
volumes:
- ./agents/agent-2/conf:/data/teamcity_agent/conf
environment:
- DOCKER_IN_DOCKER=start
volumes 配置是把agent的配置和相关的文件使用当前机器的目录,在执行的时候使用的也当前机器的命令。在此之前应该新建这些目录
teamCity 的演示和配置
先新建一个获取git的地址
在构建步骤里添加以下三个步骤
maven 打jar包 。新建步骤 选择maven在配置的goals选项填写 “clean package”
新建步骤 docker构建镜像。选择docker配置,Docker command选项选这个“build” ;“Path to file: ”选项填写项目内的dockerfile文件路径;“Context folder:”选项填写“/”;“Image name:tag” 选项填写项目镜像的名称和版本号,例如:“demo:latest”
再新建步骤,编辑docker启停的命令。新建时选择“Command Line”;
“Working directory:”选项选择项目内的文件夹即可;“Run”选项是选择执行脚本文件还是执行脚本命令,也可以在项目内编辑好docker启停的命令执行,在此处选择的是“Custom script”,下面就会有“Custom script”选项;“Custom script”选项添加docker气体的脚本即可
新建触发器
触发器可以自行定义触发条件,可以为定时触发,分支合并触发,提交日志关键字触发,此处添加的是“@build”提交日志关键字触发