自動構建的基本思路是當dev分支合併到master分支時,觸發構建,自動發佈,下面是詳細步驟java
使用的是一個開源庫git
github.com/sameersbn/d…github
這一步基本參考這個庫就能搭建成功了spring
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服務已經完成接下來是第二步pages:
stage: deploy
script:
- cd /gitlab-project/demo
- git pull
- mvn package
- systemctl restart demo
only:
- master
複製代碼
能夠看到ci只針對master分支,即dev分支merge至master分支時 觸發構建docker
gitlab-ci-multi-runner register
Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com/):
#這裏輸入你的gitlab域名
# executor輸入shell
複製代碼
域名和token在Specific Runners這裏 shell
註冊完畢後 能夠看到這裏有顯示,你應該只有一個 接下來是將springboot項目作成系統服務systemctl這部份內容本身百度,貼一下本身的demo.serviceDescription=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項目至對應路徑springboot
如今項目的某個接口返回數據是這樣的bash
咱們修改一下服務器
提交至dev分支 能夠看到剛剛咱們提交的請求已經出如今項目主頁了,咱們合併他選擇對應的job查看,已經在跑了 app
curl一下
小夥伴們還不趕忙試試?