Docker安裝Jenkins并部署Maven項目詳細教程
一、前言
在開始之前,我們需要保證系統(tǒng)中已經(jīng)安裝了Docker、JDK、Maven。
二、Docker 拉取鏡像
我這里使用的是 2.344 版本的 Jenkins,拉取命令如下:
docker pull jenkins/jenkins:2.344
需要稍微等一會,等待拉取完成。
鏡像下載完成后,我們可以通過如下命令查看我們 docker 中的所有鏡像。
docker images
這里可以看到我們剛才拉取的 2.344版本的 Jenkins 鏡像。
三、運行容器
下載鏡像成功后,我們需要用此鏡像運行一個容器,命令如下:
docker run \ -d \ --name jenkins \ -u 0 \ -p 9999:8080 \ -p 8888:8888 \ -p 50000:50000 \ -v /usr/local/java/jdk-11.0.18:/usr/local/java/jdk-11.0.18 \ -v /usr/local/maven/apache-maven-3.6.1:/usr/local/maven/apache-maven-3.6.1 \ -v /home/jenkins_home:/home/jenkins_home \ jenkins/jenkins:2.344
命令解釋:
- -d:在后臺運行
- --name:為我們當前運行的容器取一個名稱
- -u:以某個用戶的身份啟動(此處的 0 代表是 root 用戶,而如果不加該命令,jenkins 啟動會默認以 1000 的用戶 jenkins 啟動,這樣會導致某些文件夾的讀寫權限不足問題,因此建議加上 -u 0 命令啟動容器)
- p:指定映射的IP和端口,前者為本地系統(tǒng)的端口號,后者為容器內部的端口號。以 -p 9999:8888 舉例,8888為容器內的端口號,而9999為容器內端口號映射到本地系統(tǒng)(容器外部)的端口,即我們訪問本地系統(tǒng)的9999端口,實際會映射到容器內部的8888端口上。此處開放8888端口是因為后面構建項目時,項目的端口也為8888,避免重新給容器開放端口映射。
- -v:綁定數(shù)據(jù)卷,拿 -v /usr/local/java/jdk-11.0.18:/usr/local/java/jdk-11.0.18 舉例:表示將本地系統(tǒng)的 /usr/local/java/jdk-11.0.18 映射到 容器內部的 /usr/local/java/jdk-11.0.18。
最后的 jenkins/jenkins:2.344 表示當前啟動的容器是基于哪個鏡像的,語法 Repository:Tag,如果當前的鏡像是唯一的,也可以不用加Tag。
此處我將本地系統(tǒng)的 jdk11 和 maven 都映射到了 當前啟動的容器中,而路徑我為了便于統(tǒng)一(容器內的路徑可以隨便自定義),容器內的路徑設置為和容器外一樣的路徑。
/usr/local/java/jdk-11.0.18 路徑為本地系統(tǒng)JAVA_HOME 配置的路徑,如果忘記了配置的路徑,可以通過如下命令查看:
which java
我們復制路徑到bin目錄的上一級即可,如此處為:/usr/local/java/jdk-11.0.18
/usr/local/maven/apache-maven-3.6.1 路徑為本地系統(tǒng)JAVA_HOME 配置的路徑,如果忘記了配置的路徑,可以通過如下命令查看:
which mvn
同理,復制到 bin 目錄的上一層即可,此處為:/usr/local/maven/apache-maven-3.6.1
四、訪問Jenkins
當我們輸入上述的 docker run 命令后,會生成一個容器,我們可以通過命令查看當前啟動的容器:
docker ps
如果某些同學輸入命令后,沒有看到該信息,那說明我們的容器運行失敗了,可以通過如下命令查看所有容器的狀態(tài):
docker ps -a
這里的 STATUS 大概率會顯示 Exit… 表明你的容器啟動失敗。我們可以查看具體原因。
解鎖Jenkins
如果我們的容器啟動成功,那么我們直接訪問 本地的ip:9999 即可查看到當前頁面。
此時我們如果直接在本地輸入命令 cat /var/jenkins_home/secrets/initialAdminPassword 是查看不到的,因為該路徑是容器內部的路徑,我們需要先進入容器內部,再輸入該命令,才能夠成功看到密碼。
進入容器命令:
docker exec -it 容器id/容器名稱 bash
你可以輸入的容器id或者容器名稱,我一般習慣輸入容器名稱,如果你的 docker run 命令和我一樣,那么可以直接復制如下命令進入容器內部:
docker exec -it jenkins bash
成功進入容器后,我們在輸入如下命令查看初始密碼:
cat /var/jenkins_home/secrets/initialAdminPassword
我們復制打印出來的密碼,粘貼到網(wǎng)頁,點擊“繼續(xù)”,進行下一步操作。
自定義Jenkins
此處我建議點擊“安裝推薦的插件”的選項。然后耐心等待,有可能部分插件會安裝失敗,因為此處的下載源在國外。部分插件安裝失敗,我們可以點擊重試,如果多次重試仍然失敗(就是我本人),我們直接點擊下一步。
創(chuàng)建第一個管理員用戶
這里可以輸入你想創(chuàng)建的賬號,輸入完畢后,點擊保存并完成。
配置實例
這里默認即可,點擊保存并完成。
Jenkins 已就緒
點擊 “開始使用Jenkins”,就可以進入到 Jenkins 的頁面了。
五、Jenkins 配置
安裝Maven插件
Maven插件默認是不會給我們安裝的,因此我們需要自己安裝。
首先點擊左側 “Manage Jenkins”,然后找到 “Manage Plugins”并點擊,
然后點擊“可選插件”并輸入 maven,找到如下插件 Maven Integration plugin,點擊下面的 Install without restart。
全局配置
首先點擊左側 “Manage Jenkins”,然后找到 “Global Tool Configuration”并點擊,
在這里我們需要配置JDK、Git、Maven。
JDK
點擊 “JDK安裝”
輸入別名及JAVA_HOME,這里的JAVA_HOME對應的是我們docker容器內部的JAVA_HOME,而我們在第三步將運行容器,將 java 映射的地址為 /usr/local/java/jdk-11.0.18(根據(jù)你 docker run 時的配置填寫),因此這里直接上即可,如圖:
/usr/local/java/jdk-11.0.18
GIT
Git會在我們自定義Jenkins時安裝插件的時候,自動幫我們安裝,此處我們無需填寫,默認即可。
Maven
同理,此處需要填寫maven的別名和MAVEN_HOME.
MAVEN_HOME在我們運行容器映射的地址為:
/usr/local/maven/apache-maven-3.6.1
我們填上即可。
最后我們點擊應用,然后點擊保存即可。
六、部署Maven項目
首先,回到Jenkins首頁,點擊“+新建任務”,如圖:
新建Maven項目
輸入我們項目的名稱,點擊構建一個Maven項目,然后點擊確定,如圖:
配置Git倉庫
首先配置我們的Git倉庫地址,此處我用的是自己開源的項目,所以無需填寫憑證,如果大家的項目需要憑證,可以自行添加:
添加憑證非常簡單,我相信都會,填好需要的賬號密碼點擊保存即可。
當我們添加完后,URL下方?jīng)]有出現(xiàn)紅色的錯誤提示表示能夠正常連接到該倉庫了,可以繼續(xù)配置倉庫分支,這里我選用的是一個 helloworld 的分支,大家根據(jù)實際情況自行填寫:
配置Maven構建參數(shù)
接下來就是配置Maven,對項目進行打包,Root POM 不用修改,就用 pom.xml,而 Goals and options 我們填寫:
clean install -Dmaven.test.skip=true
這時候Maven的最基本配置就完成了。大家可以點擊應用,并保存,開始構建項目,看看能不能打包成功。
查看控制臺輸出:
啟動項目
這樣就代表成功了,接下來就開始啟動項目了,點擊項目,打開左側的配置,依次選擇 Post Steps -> Add post build steps -> 執(zhí)行shell
填上我們的啟動腳本,這里只是最簡單的腳本,大家可以根據(jù)實際情況填寫:
cd /var/jenkins_home/workspace/flowable_study/target nohup java -jar flowable_study-1.0-SNAPSHOT.jar >flowable_study.log &2>1 &
注意:我這里是在docker容器內部運行的java項目,大部分實際情況是需要通過jenkins連接到其他服務器去部署項目。大致的流程為:
- 將容器內的jar包拷貝到目標服務器
- 切換目錄,殺掉當前正在運行的項目
- 啟動項目
我這里只做最基本的部署演示,因此就不弄那么麻煩。同時我這里項目的端口號為8888,我在創(chuàng)建容器,使用 docker run 時,已經(jīng)將容器內的8888端口映射到宿主機的8888端口了。
寫好之后直接應用、保存。然后重新構建項目,這里就能夠直接訪問8888端口了。
由此,整個Maven項目構建完成。
總結
到此這篇關于Docker安裝Jenkins并部署Maven項目詳細教程的文章就介紹到這了,更多相關Docker安裝Jenkins部署Maven內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
docker獲取Let''s Encrypt永久免費SSL證書的方法
在本篇文章里小編給大家分享了一篇關于docker獲取Let's Encrypt永久免費SSL證書的方法,以后需要的朋友們可以參考下。2021-01-01深入了解docker(docker鏡像、容器、倉庫的基本概念)
本文重點給大家介紹docker鏡像、容器、倉庫的基本概念,感興趣的朋友跟著小編一起學習吧2016-10-10docker部署firefox瀏覽器實現(xiàn)遠程訪問
在使用docker時,默認情況下只能在本地進行訪問,本文就來介紹一下docker部署firefox瀏覽器實現(xiàn)遠程訪問,具有一定的參考價值,感興趣的可以了解一下2024-01-01使用docker-compose,如何調整JVM參數(shù)
這篇文章主要介紹了使用docker-compose,如何調整JVM參數(shù)問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-01-01