原文地址:http://blog.csdn.net/boling_cavalry/article/details/78942408
作為一款優秀的持續集成工具,jenkins在日常的項目中經常會用到,本次實戰我們在docker下快速搭建一個Jenkins服務,並體驗其項目構建能力;
實戰環境
windows、mac、linux等系統,只要裝了docker服務都可以作為實戰環境,我用的是ubuntu16,安裝的docker版本是:17.03.2-ce;
准備文件映射路徑
jenkins的容器啟動后,重要的文件我們希望能保存在當前電腦,否則容器被損壞或者刪除后就找不回這些文件了,因此要在當前電腦上准備一個目錄作為文件映射,注意文件夾權限問題,我這邊准備的本機目錄是/usr/local/work/jenkins,並且執行了chmod 777 /usr/local/work/jenkins以確保docker進程有權限讀寫此目錄;
啟動容器
- 在控制台執行以下命令,docker會去hub.docker.com下載最新的jenkins官方鏡像,然后啟動一個名為j01的容器,並且將容器的8080和50000端口直接映射到本機的8080和50000端口:
docker run -p 8080:8080 -p 50000:50000 -v /usr/local/work/jenkins:/var/jenkins_home --name j01 -idt jenkins
- 執行命令docker logs -f j01查看容器的控制台日志,看到如下信息表示jenkins服務啟動成功:
Dec 31, 2017 6:29:24 AM jenkins.install.SetupWizard init
INFO:
************************************************************* ************************************************************* ************************************************************* Jenkins initial setup is required. An admin user has been created and a password generated. Please use the following password to proceed to installation: f0f2e35d549f49b486b0ca2bdf3756d6 This may also be found at: /var/jenkins_home/secrets/initialAdminPassword ************************************************************* ************************************************************* ************************************************************* Dec 31, 2017 6:29:29 AM hudson.model.UpdateSite updateData INFO: Obtained the latest update center data file for UpdateSource default Dec 31, 2017 6:29:30 AM hudson.model.DownloadService$Downloadable load INFO: Obtained the updated data file for hudson.tasks.Maven.MavenInstaller Dec 31, 2017 6:29:30 AM hudson.model.UpdateSite updateData INFO: Obtained the latest update center data file for UpdateSource default Dec 31, 2017 6:29:30 AM hudson.WebAppMain$3 run INFO: Jenkins is fully up and running --> setting agent port for jnlp --> setting agent port for jnlp... done Dec 31, 2017 6:29:33 AM hudson.model.DownloadService$Downloadable load INFO: Obtained the updated data file for hudson.tools.JDKInstaller Dec 31, 2017 6:29:33 AM hudson.model.AsyncPeriodicWork$1 run INFO: Finished Download metadata. 11,856 ms
訪問服務
-
我的LINUX電腦IP是192.168.119.155,在瀏覽器輸入http://192.168.119.155:8080,即可訪問到jenkins的服務,由於密碼還沒有設置,將會看到下圖信息:
-
頁面提示密碼文件的位置:/var/jenkins_home/secrets/initialAdminPassword,由於我們已經將/var/jenkins_home目錄映射到本機的/usr/local/work/jenkins目錄,所以密碼文件在當前電腦的位置是:/usr/local/work/jenkins/secrets/initialAdminPassword;
-
打開此文件后發現只有一行內容,復制后粘貼到頁面唯一的輸入框中,再點擊右下角的”Continue”按鈕;
-
在等待頁面停留數十秒后,出現以下頁面,左邊按鈕是直接安裝推薦的插件配置,右邊按鈕是自己選擇所需的插件,這里我們點擊左邊按鈕,把推薦的插件裝了:
-
如下圖,jenkins開始逐個安裝插件:
-
如下圖,提示創建一個管理員,填寫完相關信息並提交,就可以使用jenkins服務了:
安裝maven
點擊“系統管理” -> “Global Tool Configuration”,如下圖:
新建一個maven,填寫完畢后點擊底部的”Apply”再點擊“保存”,記得勾選“自動安裝”,如下圖:
安裝mave插件
點擊“系統管理” -> 管理插件”,如下圖:
選中第二個tab”可選插件”,在右上角輸入框中輸入“Maven Integration plugin”,頁面上就會顯示出”Maven Integration plugin”這個插件,勾選后點擊下面的“直接安裝”按鈕,即可安裝maven插件,如下圖:
配置SSH登錄github
后面的實戰中,我們會將代碼放到github上,所以此處要做ssh登錄的配置,假設您在git上的注冊郵箱是”abcdef@gmail.com”,賬號是”abcdef”,您需要執行以下步驟:
- 在控制台執行以下命令登錄到jenkins容器:
docker exec -it j01 /bin/bash
- 登錄到容器后,執行以下命令產生SSH證書:
ssh-keygen -t rsa -C "abcdef@gmail.com"
會出現幾個詢問,直接按回車鍵繼續;
- 執行以下命令配置全局用戶信息的賬號:
git config --global user.name "abcdef"
- 執行以下命令配置全局用戶信息的郵箱:
git config --global user.email abcdef@gmail.com
- 公鑰被存儲到以下位置,打開復制所有內容,然后登錄git,添加到SSH keys中:
/var/jenkins_home/.ssh/id_rsa.pub
至此,git配置就完成了,接下來我們創建一個任務,來試試項目項目構建的功能;
git項目
為了體驗jenkins自動拉取代碼和構建項目,我在git上准備了一個spring boot的web工程,內容很簡單只有一個controller,地址是:git@github.com:zq2599/jenkinsdemo.git
構建maven項目
回到主頁,新建一個任務,選擇”構建一個maven項目”,如下圖:
新的頁面中,“源碼管理”位置選擇”Git”,在”Repository URL”位置輸入工程地址”git@github.com:zq2599/jenkinsdemo.git”,再點擊“Add”按鈕,選擇”Jenkins”,如下圖:
在彈出的頁面中輸入git登錄的信息,注意選擇SSH登錄,用戶名要用生成SSK KEY的時候的參數,如下圖:
配置完成后,依次點擊最下面的”Apply”和”保存”兩個按鈕,完成存檔並退出編輯頁面;
構建
如下圖紅框所示,在任務列表頁面,點擊任務名稱,進入任務詳情頁:
在任務詳情頁,如下圖紅框所示,點擊“立即構建”:
此時項目就開始構建了,如果想看清楚具體的執行情況,可以點擊下圖中的紅框位置,會跳轉到控制台信息輸出的頁面:
如果git配置正確,並且web工程本身可以編譯成功,那么會看到控制台頁面提示的構建成功信息,如下圖:
驗證構建結果
為了驗證構建結果,我們可以去把編譯jar包下載下載試試,下載地址如下圖所示:
點擊target文件夾后,可以看到構建好的文件:mavendockerplugindemo-0.0.1-SNAPSHOT.jar,點擊這個文件即可通過瀏覽器下載到本地;
本地打開控制台,進入mavendockerplugindemo-0.0.1-SNAPSHOT.jar文件所在的目錄,執行以下命令即可啟動這個spring boot的web工程,端口號為8081:
java -jar mavendockerplugindemo-0.0.1-SNAPSHOT.jar --server.port=8081
- 1
可以看到熟悉的springboot啟動信息,如下圖:
在瀏覽器輸入:localhost:8081,可以正常訪問此web服務,如下圖:
至此,基本的Jenkins服務搭建和使用的實戰都完成了,后面的章節中,我們一起繼續實戰Jenkins更豐富的功能;