参考:
https://www.bilibili.com/video/BV1sK4y1s7Cj?p=20
承接上文: docker gitlab,gitlab runner 简单搭建和测试
上文参考:
gitlab搭建参考:
https://www.lixian.fun/3812.html
https://www.bilibili.com/video/BV1sK4y1s7Cj?p=19
gitlab runner搭建参考:
https://www.jianshu.com/p/5810760049ac
在原有项目中,增加docker文件夹,里面写入Dockerfile
# Dockerfile
FROM daocloud.io/library/tomcat:8.5.15-jre8
COPY testci.war /usr/local/tomcat/webapps
在根目录下增加docker-compose.yml
# docker-compose.yml
version: "3.1"
services:
testci:
build: docker
restart: always
container_name: testci
ports:
- 8080:8080
修改.gitlab-ci.yml
# 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)
此时,这个runner做的事情如下:
- echo first test ci
- 使用maven打包项目
- 将target文件夹下的war包放入docker文件夹下,作为testci.war
- 关闭一下现在正在运行的docker
- 读取docker-compose.yml,build新的docker,实际上build的是docker目录下的Dockerfile
- 删除名称为null的docker images
- 其中,第5步这里构建的docker,是先下载tomcat,然后把testci.war放入tomcat中,并且映射8080端口到runner,由于之前runner开启了docker的权限和端口的权限,能够直接开放到8080端口。