從0開始搭建自動部署環境(續) 前言 上一篇 "從0開始搭建自動部署環境" 雖然環境搭建起來了,但是配置少了一部分步驟。本來應該寫到上一篇中,但是這樣做篇幅過長了。另外,此篇會使用自動部署一個同步在Github上的Spring Boot項目為例,介紹如何使用該自動部署環境。 配置Global Too ...
從0開始搭建自動部署環境(續)
前言
上一篇從0開始搭建自動部署環境雖然環境搭建起來了,但是配置少了一部分步驟。本來應該寫到上一篇中,但是這樣做篇幅過長了。另外,此篇會使用自動部署一個同步在Github上的Spring Boot項目為例,介紹如何使用該自動部署環境。
配置Global Tool Configuration
繼上一篇,登錄jenkins,完成上一篇沒有完成的後續配置。Jenkins——》系統管理——》Global Tool Configuration,在其中配置JDK、git、Maven。
Tool | Configuration |
JDK | 別名=openjdk1.8.0 |
JAVA_HOME=/usr/lib/jvm/java | |
git | Name=git |
Path to Git executable=/usr/bin/git | |
Maven | Name=maven3.5.2 |
MAVEN_HOME=/opt/apache-maven-3.5.2 |
安裝插件並重啟
- Maven Integration plugin (Maven集成,否則新建的時候沒有Maven Project)
- Deploy to container Plugin (部署到Java容器中的插件)
- Publish Over SSH (遠程Shell)
- Monitoring (監控Jenkins所消耗的系統資源,如記憶體使用等)
插件安裝完成後需要重啟jenkins。http://ip:8080/restart
就能重啟jenkins。
創建Docker本地倉庫
docker run -d -p 5000:5000 --restart always --name registry registry:2
新建項目
hello項目是我寫的一個用來測試環境的Spring Boot項目,代碼托管在github上。我想實現的是:jenkins每隔15分鐘自動檢查github上的hello項目源碼,如果項目有更新,就自動獲取更新打包部署。
新建——》構建一個Maven項目。名稱就叫hello,點擊“OK”跳轉到項目配置頁面。具體配置如下:
- 源碼管理——》Git,Repository URL值為
https://github.com/jeesun/hello
- 構建觸發器——》Poll SCM——》日程表,值為
H/15 * * * *
(設置每隔15分鐘做一次檢查) - Build——》Goals and options,值為
clean package docker:build
- Post Steps——》Add post-build step——》Execute shell,內容為
```
API_NAME="hello"
API_VERSION="0.0.1"
API_PORT=8761
IMAGE_NAME="127.0.0.1:5000/com.jeesun/\(API_NAME:\)BUILD_NUMBER"
CONTAINER_NAME=\(API_NAME-\)API_VERSION
cd \(WORKSPACE/target cp classes/Dockerfile . docker tag 127.0.0.1:5000/com.jeesun/\)API_NAME $IMAGE_NAME
docker push $IMAGE_NAME
cid=\((docker ps | grep "\)CONTAINER_NAME" | awk '{print \(1}') if [ "\)cid" != "" ]; then
docker rm -f $cid
fi
docker run -d -p $API_PORT:8080 --name $CONTAINER_NAME $IMAGE_NAME
``配置完成後,點擊“Save”。選擇頁面左側的“立即構建”,如果順利,訪問
http://ip:8761,頁面出現
hello, new world`,說明成功。
註意事項
如果無法訪問http://ip:8761
,需要確認防火牆是否關閉,或者選擇開放8761埠。