繼使用Docker搭建Gitlab后

大致的步驟如下:
- 開發人員通過IDE工具(IntelliJ IDEA)將代碼推送到gitlab。
- jenkins從gitlab中獲取到源碼,並使用maven編譯、打包、(下一章節介紹)自動構建鏡像。
- jenkins在構建腳本中調用docker命令將構建好的鏡像push到本地Docker Registry.並啟動相應的容器。(下一章節介紹)
一、使用IntelliJ IDEA 將項目發布(提交)到GitLab
(1)本地下載並安裝配置Git客戶端,並在idea配置本地git。
官方下載地址為:https://git-scm.com/download/win,下載完之后,雙擊安裝,全部選擇默認。
(2)Git初始化及倉庫創建和操作
Git安裝之后需要進行一些基本信息設置(需要先注冊Github)
a、設置用戶名:git config -- global user.name '你再github上注冊的用戶名';
b、設置用戶郵箱:git config -- global user.email 'github注冊時候的郵箱';
注意:該配置會在github主頁上顯示誰提交了該文件
c、配置ok之后,我們用如下命令來看看是否配置成功:git config --list
注意:git config --global 參數,有了這個參數表示你這台機器上所有的git倉庫都會使用這 個配置,當然你也可以對某個倉庫指定不同的用戶名和郵箱。
(3)在idea 配置Git客戶端
file->settings->version control->git

(4)idea本地將本地現有的項目和gitlab進行管理並提交到線上
在idea的菜單項選擇 VCS->Import into Version Control->Create Git Repository

出現一個彈出框,選擇你要提交的項目的文件夾

如果出現彈出框 ,點擊確定。默認是直接定位到當前項目文件所在的磁盤目錄,一般git初始化就在當前項目的根目錄,不需要修改路徑,直接點擊OK確定即可。

init完成之后,可以看到原本的項目文件名變成了紅色了,紅色在idea的git版本表示未add的文件,同時在系統資源管理中打開項目的磁盤文件目錄,會發現一個.git的隱藏文件,這個文件就git的配置和倉庫文件。

在回到idea項目中,點擊VCS》Git》Add添加當前項目下的文件,添加完成之后,之前的紅色文件名變成了綠色了,表示已經Add成功,但還沒有commit。

注意:如果有的文件還是紅色,按以下處理把你需要提交的內容添加vcs

繼續操作,VCS》Git》Commit File,然后在提交創建填寫提交注釋說明


提交完成之后,只是提交到本地倉庫,這個時候還沒有同步到遠程的gitlab服務上,需要push操作,VCS》Git》Push

然后通過網頁的方式登錄gitlab服務,創建一個空的project,然后在如圖所示的位置復制倉庫地址

在本地通過git shell (可以安裝git for window) 進入到項目目錄 執行 以下命令:
# 給項目設置遠程遠程倉庫 #
git remote add origin http://gitlab.ipzao.com/root/test.git
# 抓取遠程倉庫數據,並自動合並遠程分支 #
git pull origin master
# 更新本地數據到gitlab #
git push origin master
選中項目,先git->commitFile,然后操作git->repository->push 可以push代碼到遠程gitlab上了,push完成之后會提示push successful

二、安裝jenkins
1. 拉取jenkins鏡像
docker pull jenkinsci/jenkins
2. 新建jenkins工作目錄
cd apps
mkdir jenkins
cd jenkins
3. 生成啟動文件 jenkins-start.sh
cat <<EOF > jenkins-start.sh
#!/bin/bash
HOST_NAME=jenkins.ipzao.com
GITLAB_DIR=`pwd`
docker stop jenkins
docker rm jenkins
docker run -d \
-p 38080:8080 \
-p 50000:50000 \
--name jenkins \
--link gitlab:gitlab.ipzao.com \
-u root \
-v /apps/ipzao/jenkins:/var/jenkins_home \
jenkinsci/jenkins:latest
EOF
使用docker命令運行容器,然后開啟38080端口,並啟動jenkins容器。
其中8080端口是jenkins的端口,38080是映射宿主機的端口,50000端口是master和slave通信端口.以root用戶來啟動容器,同時通過配置--link連接gitlab,因為要與gitlab容器通訊下載代碼。
4. 運行 jenkins-start.sh 啟動jenkins
sh jenkins-start.sh
jenkins 啟動后,可通過 docker logs -f 容器實例Id 查看日志。
容器實例Id 查詢 docker ps
打開瀏覽器http://ip:38080/訪問跳轉到解鎖jenkins頁面。

在服務器上以下執行命令查看密碼
由於之前啟動jenkins容器時我們做了目錄映射
-v /apps/ipzao/jenkins:/var/jenkins_home,所以要將執行命令改為:
cat /apps/ipzao/jenkins/secrets/initialAdminPassword
在解鎖頁面上輸入上述密碼,繼續進入以下頁面:

建議選擇安裝推薦的插件,基本上一些常用的插件都會被安裝,安裝過程如圖:

安裝完后進入以下頁面:

單擊開始使用Jenkins按鈕進入jenkins系統,點擊左側菜單中的"系統管理"進入Jenkins管理模塊,查看系統設置:

主目錄:是存放Jenkins所有的文件的,工作空間根目錄和構建記錄目錄默認都是在Jenkins主目錄下,這個設置一般不用進行變更。

執行者數量:可以並發構建的數量。
標記:用來記錄這個機器的名稱。
用法:設置這個節點的執行策略(包括盡可能使用這個節點和只允許綁定到這台機器的job。
生成前等待時間:這個時間為構建開始前的等待時間。
scm簽出重試次數:使用svn或者git拉取代碼失敗重試的次數。
工程命名限制:限制項目命名,勾選后可以看到具體設置,可以設置為默認或者使用正則表達式進行限制。

全局屬性
工具位置:設置全局工具,可以把需要的工具都在這里進行配置,比如maven,ant,jdk等。
環境變量:設置全局變量,在這里定義的全局變量可以在構建或者發送郵件時引用。

設置時間格式

管理監控默認選中所有

jenkins location
jenkins url:設置jenkins的url(發送郵件引用jenkins的地址會取這個值,如果設錯了,郵件的連接就會打不開)。
系統管理員郵件地址:管理員的郵件地址(在構建需要發送郵件時,會用到這個郵件地址)。

插件管理:進入全局工具配置 選擇可選插件板塊,安裝並配置maven插件,如果缺少Maven Integration Plugin插件,在創建job時,不會有新建一個maven項目選項。

5. 創建一個構建任務
輸入項目名稱test,選中構建一個多配置項目點擊確定按鈕進入項目配置頁面:

在源碼管理板塊中選擇git並在repository url填寫git倉庫名稱,但此時會報錯:

通過錯誤提示可知:我們所填入的URL是需要身份認證的,可單擊Credentials下拉框右側的Add按鈕,並選擇Jenkins選項,彈出身份認證信息對話框:

上面填寫的是gitlab的用戶名密碼驗證,添加完后需要選中它,這個時候可以看到已經不報錯了。

在構建板塊中配置maven:

添加構建后操作:

點擊增加構建后操作步驟,選擇歸檔成品,在文本框中輸入需要存檔的文件路徑:**/target/*.jar。
單擊保存回到主界面
單擊左側菜單的立即構建並在控制台輸出中查看構建日志:

小球圖標表示構建狀態:藍色表示構建成功,但目的是搭建一個持續集成的環境,在開發階段我們會不斷的推送代碼到gitlab,所以我們需要利用jenkins來幫我們實現自動構建發布(下一章節介紹)。