Gitlab-CI +Docker + Docker-Compose構建可持續集成java項目的鏡像


先注冊好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

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM