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