先注冊好Runner: https://www.cnblogs.com/zsifan/p/11714788.html
以及搭建Java和Maven環境: https://www.cnblogs.com/zsifan/p/11716177.html
安裝Docker和Docker-Compose:
Docker安裝:https://docs.docker.com/install/linux/docker-ce/ubuntu/
Docker-Compose安裝: https://docs.docker.com/compose/install/
sudo curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
因為國內下載github的速度很慢 所以沒使用這種方法,使用的是軟件包安裝 apt-get install docker-compose
在linux主機上git項目中創建目錄docker
目錄結構是
DockerFile:
FROM java:8 MAINTAINER 1448983340@qq.com ADD weixin-0.0.1-SNAPSHOT.jar weixin-0.0.1-SNAPSHOT.jar EXPOSE 9000 CMD java -jar weixin-0.0.1-SNAPSHOT.jar
docker-compose.yml:
version : "3.1" services: weixin: image: weixin:latest ports: - "9000:9000" container_name: weixin
隨后在git項目根目中編寫 .gitlab-ci.yml
stages:
- pull
- package
- build
- restart
pull:
stage: pull
script:
- cd /usr/local/xiangmu/weixin
- git pull git@git.lug.ustc.edu.cn:complete/weixin.git
package:
stage: package
script:
- cd /usr/local/xiangmu/weixin
- /usr/local/bin/apache-maven-3.6.2/bin/mvn clean package
- cp target/weixin-0.0.1-SNAPSHOT.jar docker/weixin-0.0.1-SNAPSHOT.jar
build:
stage: build
script:
- cd /usr/local/xiangmu/weixin/docker
- docker build -t weixin -f DockerFile .
restart:
stage: restart
script:
- cd /usr/local/xiangmu/weixin/docker
- docker-compose down
- docker-compose up -d
隨后push代碼到gitlab中 將會觸發CI/CD

一定要注意cd到你項目的目錄中
不加cd 列如最后一步:
restart:
stage: restart
script:
- docker-compose down
- docker-compose up -d
不然會出現找不到該文件

這是因為runner的初始地方是在
完成之后jar包就被打包成鏡像,以及啟動了容器


因為打包成鏡像會造成前面的鏡像名字成為<none>並占空間<但沒什么用>
使用docker images|grep none|awk '{print $3 }'|xargs docker rmi 命令將<none>鏡像全部刪除

將該過程新建一個管道來運行就可以了(最后一步)
clean:
stage: clean
script:
- docker images|grep none|awk '{print $3 }'|xargs docker rmi
