docker学习之测试ci

我爱海鲸 2021-09-11 19:21:09 暂无标签

简介测试持续集成

1、先参考

docker学习之compose安装gitlab

docker学习之compose安装gitlab-runer

这两篇文章。

2、在idea中创建一个maven工程,在pom.xml文件中修改:<packaging>war</packaging>

3、设置web工程,如图:

undefined

4、在webapp下创建一个页面,index.html

编写.gitignore文件,内容如下:

.idea

out

target

*.iml

添加完以后将项目push到你的gitlab上面

上面的文章中有提到过在安装gitlab-runner时,就已经安装了maven和jdk以及挂载了宿主机的docker和docker-compose等等,

我们需要在在项目编写相关的Dockerfile和docker-compose.yml文件以及.gitlab-ci.yml文件,如图:

undefined

5、Dockerfile  编写如下:


FROM daocloud.io/library/tomcat:8.5.15-jre8

COPY testci.war /usr/local/tomcat/webapps


这就不用在解释了,之前的文章中都学习过了,忘了就再去看。

6、.gitlab-ci.yml  编写如下:


stages:

  - test


test:

  stage: test

  script:

    - echo first test ci                             

    - /usr/local/maven/apache-maven-3.6.3/bin/mvn package

    - cp target/testci-1.0-SNAPSHOT.war docker/testci.war

    - docker-compose down

    - docker-compose up -d --build

    - docker rmi $(docker images -qf dangling=true)


这就不用在解释了,之前的文章中都学习过了,忘了就再去看。

7、docker-compose.yml  编写如下:


version: "3.1"

services:

  testci:

    build: docker

    restart: always

    container_name: testci

    ports:

      - 8080:8080


这就不用在解释了,之前的文章中都学习过了,忘了就再去看。

8、大概的执行流程:

当我们代码push到gitlab后,就会触发.gitlab-ci.yml

gitlab就会将代码推送到gitlab-runner里,gitlab-runner就会执行上面编写的shell脚本,

maven打包,将打包后的war复制到docker目录下

执行docker-compose down  将docker-compose.yml 执行的内容停止并删除

docker-compose up -d --build  将docker-compose.yml 执行内容

docker rmi $(docker images -qf dangling=true)  删除因为一些其他异常导致的空镜像

然后就是Dockerfile中的内容,拉取一个tomcat容器,将war包复制到webapp目录下,

暴漏端口为8080。访问http://192.168.150.137:8080/testci/,如图:

undefined

持续集成到此结束


你好:我的2025