繼使用Docker搭建Gitlab後
大體的步驟以下:git
- 開發人員經過IDE工具(IntelliJ IDEA)將代碼推送到gitlab。
- jenkins從gitlab中獲取到源碼,並使用maven編譯、打包、(下一章節介紹)自動構建鏡像。
- jenkins在構建腳本中調用docker命令將構建好的鏡像push到本地Docker Registry.並啓動相應的容器。(下一章節介紹)
1、使用IntelliJ IDEA 將項目發佈(提交)到GitLabgithub
(1)本地下載並安裝配置Git客戶端,並在idea配置本地git。正則表達式
官方下載地址爲:https://git-scm.com/download/win,下載完以後,雙擊安裝,所有選擇默認。docker
(2)Git初始化及倉庫建立和操做shell
Git安裝以後須要進行一些基本信息設置(須要先註冊Github)瀏覽器
a、設置用戶名:git config -- global user.name '你再github上註冊的用戶名';bash
b、設置用戶郵箱:git config -- global user.email 'github註冊時候的郵箱';服務器
注意:該配置會在github主頁上顯示誰提交了該文件併發
c、配置ok以後,咱們用以下命令來看看是否配置成功:git config --listapp
注意: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
2、安裝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來幫咱們實現自動構建發佈(下一章節介紹)。