整體步驟概括
- 準備兩台虛拟機,最小安裝,配置ip能ping通外網即可,安裝docker
- 一台虛拟機跑gitlab,一台跑gitlab runner和springboot項目
- 将springboot項目打成systemctl系統服務
- 編寫gitlab.ci自動建構你的springboot項目
自動建構的基本思路是當dev分支合并到master分支時,觸發建構,自動釋出,下面是詳細步驟
1.通過docker、docker-compose搭建gitlab
使用的是一個開源庫
https://github.com/sameersbn/docker-gitlab
這一步基本參考這個庫就能搭建成功了
- 确定你安裝好了docker和docker-compose
- 下載下傳官方docker-compose檔案
wget https://raw.githubusercontent.com/sameersbn/docker-gitlab/master/docker-compose.yml
修改兩個地方
gitlab_port就是你通路的端口位址,gitlab_host則是你配置的虛拟機ip
這時你的目錄結構應該是這樣的
cd至gitlab目錄下執行指令
docker-compose up
等待docker鏡像安裝完成
完成後等待幾分鐘gitlab初始化,通路
http://yourdomain:10080,重置密碼
這裡我已經建好項目了,到此 第一步搭建gitlab服務已經完成接下來是第二步
2.注冊gitlab-runner完成項目自動建構
- 建立dev分支
checkout你的dev分支,開發隻對dev分支操作,master分支則用于ci建構
- 編寫gitlab-ci.yml
pages:
stage: deploy
script:
- cd /gitlab-project/demo
- git pull
- mvn package
- systemctl restart demo
only:
- master
可以看到ci隻針對master分支,即dev分支merge至master分支時 觸發建構
-
搭建runner伺服器
前面說到需要準備兩台伺服器,一台搭建gitlab,一台搭建runner
gitlab-runner比較簡單,查一查如何安裝即可,安裝完畢輸入
gitlab-ci-multi-runner register
Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com/):
#這裡輸入你的gitlab域名
# executor輸入shell
域名和token在Specific Runners這裡
注冊完畢後
可以看到這裡有顯示,你應該隻有一個
接下來是将springboot項目做成系統服務systemctl這部分内容自己百度,貼一下自己的demo.service
Description=demo
[Service]
WorkingDirectory=/gitlab-project/demo
PrivateTmp=true
Type=simple
ExecStart=/usr/java/jdk1.8.0_181-amd64/bin/java -jar /gitlab-project/demo/target/demo-0.0.1-SNAPSHOT.jar -java.io.tmpdir=/gitlab-project/tmp --spring.config.location=/gitlab-project/demo/target/classes/application.yml
ExecStop=kill -9 `ps -ef|grep java|grep -v grep|grep demo|awk '{print $2}'`
[Install]
WantedBy=multi-user.target
gitlab-project/demo是這個demo項目的路徑,在進行ci前 你應該git clone項目至對應路徑
3. 最後一步啦
現在項目的某個接口傳回資料是這樣的
我們修改一下
送出至dev分支
可以看到剛剛我們送出的請求已經出現在項目首頁了,我們合并他
選擇對應的job檢視,已經在跑了
curl一下
小夥伴們還不趕緊試試?