Docker-CI(Continuous Integration)的使用

Docker-CI

1、思考:Docker-CI 能干什么、为我们解决了什么问题?

1、每天会频繁的将代码合并的主分支上:快速定位错误代码位置,防止偏离主干。
2、每天频繁的从gitlab上拉取最新版本的代码,并且将其部署到Linux操作系统中,测试新功能和老功能是否可以兼容。

  • 修改Windows的环境,改成Linux下的环境。
  • 将项目打成一个war包。
  • 将其复制到tomcat的webapps目录下,运行。

3、Gitlab-Runner可以帮助我们将上述频繁操作,但是重复的流程封装起来。
4、每当我推送代码到Git远程仓库时,他会自动将最新版本的代码部署到指定的Linux服务上。
5、已经准备好Gitlab仓库。

Gitlab仓库

2、安装GitLab-Runner

在资料中准备了一个docker-compose.yml和一个environment目录。

docker-compose.yml:

  • 基于environment中的一个Dockerfile构建了一个自定义镜像。
  • environment/Dockerfile:
    • FROM gitlab-runner:bleeding
    • 安装Docker:
      • 设置aliyun镜像源。
      • 安装Docker需要的环境。
      • 安装Docker。
      • 设置Docker的私服配置文件。
    • 安装docker-compose文件。
      • 直接通过COPY和RUN导入镜像中。
    • 安装JDK。
      • 直接通过COPY和RUN导入镜像中。
    • 安装Maven。
      • 直接通过COPY和RUN导入镜像中。
    • 配置了JDK和Maven的环境变量。
  • 在启动自定义镜像前,先设置宿主机Docker的拥有者:
  • 通过docker-compose up -d --build 运行Gitlab-Runner自定义镜像
  • 等容器启动成功,docker exec -it gitlab-runner usermod -aG root gitlab-runner将容器内部的Docker和宿主机上的Docker绑定。

3 将GitLab-Runner和GitLab绑定到一起

  • 在GitLab-Runner容器启动成功后,执行:

docker exec -it gitlab-runner gitlab-runner register

  • 回到GitLab仓库中,创建了一个工程,命名为testci。

  • 如图找到Gitlab的地址和token在这里插入图片描述
    按照Xterm给予的提示,指定:

  • GitLab路径。

  • Token。

  • 描述。(随便写)

  • 指定什么时候执行Runner:deploy。

  • 以那种方式操作:Shell。

在这里插入图片描述

指定不需要标签也执行ci操作.

在这里插入图片描述
在这里插入图片描述

4.测试CI

1、创建maven项目,war项目。

2、创建一个HTML页面。

3、提交代码到GitLab仓库。

4、添加一个.gitlab-ci.yml文件。

stages:
  - test
# 保证现在的三个test是一致的即可.
test:
stage: test
script:
    - echo this is my first ci
    - pwd

5、查看ci的控制台。在这里插入图片描述
在这里插入图片描述

5.使用CI部署工程

  • 脚本文件是在项目路径下执行的。
  • 使用maven将项目打成war包,使用mvn命令的绝对路径。
  • 在项目目录下创建docker-compose.yml文件,Dockerfile文件。
  • 使用copy目录将target目录下的war复制到了Dockerfile同级目录下。
  • 停止并删除容器。
  • 启动并重新构建镜像和容器。
stages:
  - test

test:
stage: test
script:
    - echo this is my first ci
    - pwd
    - /usr/local/maven/apache-maven-3.6.3/bin/mvn clean package -DskipTests   # 打包
    - cp target/test-ci-1.0-SNAPSHOT.war ./test-ci-1.0-SNAPSHOT.war        # 复制war包到Dockerfile路径
    - docker-compose down			# 先关闭并且删除容器
    - docker-compose up -d --build   # 启动并制作自定义镜像和容器
    - docker image prune -f        # 删除名称为<none>的自定义镜像
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值