1. 程式人生 > >Springboot Gitlab Jenkins Maven Docker 持續整合/持續交付

Springboot Gitlab Jenkins Maven Docker 持續整合/持續交付

Gilab安裝教程

http://blog.csdn.net/chenhaifeng2016/article/details/78603216

http://blog.csdn.net/chenhaifeng2016/article/details/78603932

Jenkin安裝教程

http://blog.csdn.net/chenhaifeng2016/article/details/78626727

Maven安裝教程和Gradle安裝教程

http://blog.csdn.net/chenhaifeng2016/article/details/61202846

Docker私有Registry安裝教程

http://blog.csdn.net/chenhaifeng2016/article/details/78177159

製作基礎映象

http://blog.csdn.net/chenhaifeng2016/article/details/78631215

配置Jenkins的JDK和Maven

在Jenkins中安裝相關外掛:Git, Gitlab Auth, Gilab Hook, Gitlab

在Jenkins中配置Git plugin

在Jenkins中配置Gitlab plugin


GitLab API Token來自於


最後測試一下Jenkins是否可以連線GitLab。

點選按鈕Test Connection返回success顯示成功。


在Jenkins伺服器生成金鑰對ssh-keygen

在Gitlab建立專案springbootdemo

配置專案的部署金鑰

在Jenkins中新建一個專案springbootdemo,建議專案名稱和gitlab中的專案名稱保持一致。專案型別為構建一個自由風格的軟體專案。

在Jenkins中配置專案的原始碼管理

在Jenkins中配置專案的構建觸發器

在Jenkin中配置專案的構建動作,這裡暫時輸出"maven ..."

在gitlab中配置專案的webhook

模擬測試一下Push events

測試成功

在IntelliJ IDEA修改程式碼做一次提交,webhook會自動觸發構建。


接下來配置專案自動生成docker映象並上傳企業內部私有倉庫。

在Jenkins中配置專案的構建,這裡新增兩個步驟。


dockerfile的內容

FROM repo.cssweb.com:5000/chenhf/jdk8

MAINTAINER chenhf "[email protected]"

RUN mkdir -p /usr/local/src/springbootapp

ADD target/springbootdemo-0.0.1-SNAPSHOT.jar /usr/local/src/springbootapp

ENTRYPOINT ["java", "-Djava.security.egd=file:/dev/./urandom", "-jar", "/usr/local/src/springbootapp/springbootdemo-0.0.1-SNAPSHOT.jar"]

通常情況下,會在專案中新增一個目錄docker, 並在下面建立dockerfile檔案。

另外,maven工程可以藉助於docker-maven-plugin外掛來生成映象並上傳映象倉庫。

這裡只是出於演示的目的。

shell指令碼的內容

#!/bin/bash
if docker images | grep repo.cssweb.com:5000/chenhf/springbootdemo
then
    docker rmi repo.cssweb.com:5000/chenhf/springbootdemo
    echo "docker rmi repo.cssweb.com:5000/chenhf/springbootdemo"
fi

docker build -t repo.cssweb.com:5000/chenhf/springbootdemo .
docker push repo.cssweb.com:5000/chenhf/springbootdemo

if docker ps -a | grep -i springbootdemo 
then
    docker rm -f springbootdemo
    echo "docker rm -f springbootdemo"
fi

docker run -d -p 9000:8080 --name springbootdemo repo.cssweb.com:5000/chenhf/springbootdemo

這裡只是出於演示的需要,在本地運行了容器。實際情況下, 需要通過docker compose,kubernetes等工具來部署容器。

接下來在專案開發工具IntelliJ IDEA中做一次提交, Jenkins會自動構建專案、生成映象、上傳映象並執行容器。

下次講一下如何通過pipeline來持續整合和交付專案。

maven docker plugin

https://github.com/spotify/docker-maven-plugin

https://github.com/spotify/dockerfile-maven