使用Jenkins+Docker+Gitlab+Maven搭建持續集成環境

使用Docker搭建Gitlab

使用Jenkins+Docker+Gitlab+Maven搭建持續集成環境

 

大體的步驟以下: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

 

使用Jenkins+Docker+Gitlab+Maven搭建持續集成環境

 

(4)idea本地將本地現有的項目和gitlab進行管理並提交到線上

在idea的菜單項選擇 VCS->Import into Version Control->Create Git Repository

使用Jenkins+Docker+Gitlab+Maven搭建持續集成環境

 

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

使用Jenkins+Docker+Gitlab+Maven搭建持續集成環境

 

若是出現彈出框 ,點擊肯定。默認是直接定位到當前項目文件所在的磁盤目錄,通常git初始化就在當前項目的根目錄,不須要修改路徑,直接點擊OK肯定便可。

使用Jenkins+Docker+Gitlab+Maven搭建持續集成環境

 

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

使用Jenkins+Docker+Gitlab+Maven搭建持續集成環境

 

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

使用Jenkins+Docker+Gitlab+Maven搭建持續集成環境

 

注意:若是有的文件仍是紅色,按如下處理把你須要提交的內容添加vcs

使用Jenkins+Docker+Gitlab+Maven搭建持續集成環境

 

繼續操做,VCS》Git》Commit File,而後在提交建立填寫提交註釋說明

使用Jenkins+Docker+Gitlab+Maven搭建持續集成環境

 

使用Jenkins+Docker+Gitlab+Maven搭建持續集成環境

 

提交完成以後,只是提交到本地倉庫,這個時候尚未同步到遠程的gitlab服務上,須要push操做,VCS》Git》Push

使用Jenkins+Docker+Gitlab+Maven搭建持續集成環境

 

而後經過網頁的方式登陸gitlab服務,建立一個空的project,而後在如圖所示的位置複製倉庫地址

使用Jenkins+Docker+Gitlab+Maven搭建持續集成環境

 

在本地經過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+Docker+Gitlab+Maven搭建持續集成環境

 

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+Docker+Gitlab+Maven搭建持續集成環境

 

在服務器上如下執行命令查看密碼

因爲以前啓動jenkins容器時咱們作了目錄映射

-v /apps/ipzao/jenkins:/var/jenkins_home,因此要將執行命令改成:

cat /apps/ipzao/jenkins/secrets/initialAdminPassword

在解鎖頁面上輸入上述密碼,繼續進入如下頁面:

使用Jenkins+Docker+Gitlab+Maven搭建持續集成環境

 

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

使用Jenkins+Docker+Gitlab+Maven搭建持續集成環境

 

安裝完後進入如下頁面:

使用Jenkins+Docker+Gitlab+Maven搭建持續集成環境

 

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

使用Jenkins+Docker+Gitlab+Maven搭建持續集成環境

 

主目錄:是存放Jenkins全部的文件的,工做空間根目錄和構建記錄目錄默認都是在Jenkins主目錄下,這個設置通常不用進行變動。

使用Jenkins+Docker+Gitlab+Maven搭建持續集成環境

 

執行者數量:能夠併發構建的數量。

標記:用來記錄這個機器的名稱。

用法:設置這個節點的執行策略(包括儘量使用這個節點和只容許綁定到這臺機器的job。

生成前等待時間:這個時間爲構建開始前的等待時間。

scm簽出重試次數:使用svn或者git拉取代碼失敗重試的次數。

工程命名限制:限制項目命名,勾選後能夠看到具體設置,能夠設置爲默認或者使用正則表達式進行限制。

使用Jenkins+Docker+Gitlab+Maven搭建持續集成環境

 

全局屬性

工具位置:設置全局工具,能夠把須要的工具都在這裏進行配置,好比maven,ant,jdk等。

環境變量:設置全局變量,在這裏定義的全局變量能夠在構建或者發送郵件時引用。

使用Jenkins+Docker+Gitlab+Maven搭建持續集成環境

 

設置時間格式

使用Jenkins+Docker+Gitlab+Maven搭建持續集成環境

 

管理監控默認選中全部

使用Jenkins+Docker+Gitlab+Maven搭建持續集成環境

 

jenkins location

jenkins url:設置jenkins的url(發送郵件引用jenkins的地址會取這個值,若是設錯了,郵件的鏈接就會打不開)。

系統管理員郵件地址:管理員的郵件地址(在構建須要發送郵件時,會用到這個郵件地址)。

使用Jenkins+Docker+Gitlab+Maven搭建持續集成環境

 

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

使用Jenkins+Docker+Gitlab+Maven搭建持續集成環境

 

5. 建立一個構建任務

輸入項目名稱test,選中構建一個多配置項目點擊肯定按鈕進入項目配置頁面:

使用Jenkins+Docker+Gitlab+Maven搭建持續集成環境

 

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

使用Jenkins+Docker+Gitlab+Maven搭建持續集成環境

 

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

使用Jenkins+Docker+Gitlab+Maven搭建持續集成環境

 

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

使用Jenkins+Docker+Gitlab+Maven搭建持續集成環境

 

在構建板塊中配置maven:

使用Jenkins+Docker+Gitlab+Maven搭建持續集成環境

 

添加構建後操做:

使用Jenkins+Docker+Gitlab+Maven搭建持續集成環境

 

點擊增長構建後操做步驟,選擇歸檔成品,在文本框中輸入須要存檔的文件路徑:**/target/*.jar。

單擊保存回到主界面

單擊左側菜單的當即構建並在控制檯輸出中查看構建日誌:

使用Jenkins+Docker+Gitlab+Maven搭建持續集成環境

 

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

相關文章
相關標籤/搜索