Docker-Compose 部署TeamCity CI/CD

发布于:2022-12-28 ⋅ 阅读:(476) ⋅ 点赞:(0)

准备

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的地址

在这里插入图片描述

在构建步骤里添加以下三个步骤

在这里插入图片描述

  1. maven 打jar包 。新建步骤 选择maven在配置的goals选项填写 “clean package”
    在这里插入图片描述

  2. 新建步骤 docker构建镜像。选择docker配置,Docker command选项选这个“build” ;“Path to file: ”选项填写项目内的dockerfile文件路径;“Context folder:”选项填写“/”;“Image name:tag” 选项填写项目镜像的名称和版本号,例如:“demo:latest”
    在这里插入图片描述

  3. 再新建步骤,编辑docker启停的命令。新建时选择“Command Line”;
    “Working directory:”选项选择项目内的文件夹即可;“Run”选项是选择执行脚本文件还是执行脚本命令,也可以在项目内编辑好docker启停的命令执行,在此处选择的是“Custom script”,下面就会有“Custom script”选项;“Custom script”选项添加docker气体的脚本即可
    在这里插入图片描述

新建触发器

触发器可以自行定义触发条件,可以为定时触发,分支合并触发,提交日志关键字触发,此处添加的是“@build”提交日志关键字触发
在这里插入图片描述