jenkin+docker 构建项目
jenkins發(fā)布項(xiàng)目
在構(gòu)建項(xiàng)目之前我們需要做一些配置,安裝一些插件
- 點(diǎn)擊系統(tǒng)管理
- 點(diǎn)擊插件管理
- 需要安裝一下這個(gè)maven插件
- 插件安裝完成之后我們需要配置一下全局工具 "系統(tǒng)管理>全局工具配置"
注意:安裝了jdk 就不要在點(diǎn)自動(dòng)安裝了
這里需要配置一下jdk , 別名隨便輸入,JAVA_HOME填寫安裝jenkins的服務(wù)器上面的JAVA_HOME就行
如果是linux機(jī)器輸入 下面的命令可以看到
- jdk配置完成之后還需要配置一下maven(前提是服務(wù)器裝了maven)
和jdk配置差不多,這里要注意,如果HOME路徑不存在就會(huì)報(bào)上圖的錯(cuò)誤,填寫正確就不會(huì)報(bào)錯(cuò),同樣輸入下面的命令可以看到MAVEN_HOME
- 暫時(shí)我們就配置這兩個(gè),點(diǎn)擊保存、應(yīng)用就可以了
到這里我們的前期準(zhǔn)備工作已經(jīng)做好了,下面可以開始正式構(gòu)建項(xiàng)目了
- 首先我們這里構(gòu)建一個(gè)maven項(xiàng)目,輸入自己的項(xiàng)目名稱,點(diǎn)擊完成。
- 然后我們進(jìn)入構(gòu)建配置頁面,配置一下構(gòu)建參數(shù)
- 這里我們使用參數(shù)化構(gòu)建,選擇字符參數(shù)(其他類型參數(shù)可以自己嘗試一下)
選擇字符參數(shù)后會(huì)出現(xiàn)以下界面
這里配置下項(xiàng)目名稱(這個(gè)是可有可無的,這里主要是測(cè)試下參數(shù)化配置,后期有其他參數(shù)需要傳遞在詳細(xì)配置)
- 接下來是源碼管理配置
url輸入自己的Git項(xiàng)目路徑
Credentials 是需要驗(yàn)證git的登錄信息
點(diǎn)擊圖中的 “添加” 按鈕
輸入自己登錄git的用戶名密碼就可以
分支默認(rèn)就行,如果有自己分支,輸入分支名稱就行
- 觸發(fā)器這里選擇默認(rèn)就行
- 接下來就行構(gòu)建前后執(zhí)行的命令配置
- pre steps 為構(gòu)建前執(zhí)行,這里我們選擇執(zhí)行 shell
輸入下面的執(zhí)行shell 腳本的命令 (腳本文件是項(xiàng)目中編寫好的,文章后面會(huì)給出來)
/bin/bash runPre.sh ${PRODUCT_NAME}- build中需要填寫構(gòu)建的pom.xml文件
(這里是單個(gè)項(xiàng)目直接填寫pom.xml就行,如果是maven父子工程,填寫父工程的pom.xml文件地址)
Goals and options:是構(gòu)建項(xiàng)目執(zhí)行的maven命令
(這里是通過docker-maven-plugin 插件將項(xiàng)目構(gòu)建為一個(gè)docker鏡像,shell腳本主要也是控制docker鏡像的啟動(dòng),停止,刪除)
Post Steps : 為構(gòu)建后參數(shù)(運(yùn)行腳本文件,主要是通過鏡像啟動(dòng)容器)
/bin/bash runPost.sh ${PRODUCT_NAME}到這里配置就OK了,點(diǎn)擊保存退出就行
可以看到我們項(xiàng)目現(xiàn)在大概是這樣的
下面我們?cè)賮砜匆幌马?xiàng)目結(jié)構(gòu)
這里我就寫了一個(gè)測(cè)試controller
Dockerfile文件可以不要(主要的之前測(cè)試了用dockerfile文件和用配置兩種情況)
- 配置文件內(nèi)容如下
這里對(duì)于初步接觸dockerfile配置的來說可以理解為
編譯docker鏡像,當(dāng)我們通過鏡像啟動(dòng)容器時(shí)會(huì)執(zhí)行下面的命令
-
為docker鏡像起名為${project.artifactId}:${project.version}
-
在容器中下載并按照jdk
-
執(zhí)行 java -version 命令
-
執(zhí)行java -jar ${project.build.finalName}.jar 命令
這樣容器就啟動(dòng)起來了。
開啟docker遠(yuǎn)程訪問
- 最后在看一下shell文件(runPre.sh)
- runPost.sh
這里注意項(xiàng)目文件放的位置不要隨意改動(dòng)。
- 下面我們就可以開始構(gòu)建項(xiàng)目了,點(diǎn)擊 Build with Parameters,在點(diǎn)擊開始構(gòu)建
- 可以看到項(xiàng)目就開始構(gòu)建
- 點(diǎn)擊 #24 這次構(gòu)建進(jìn)去看下日志
這里可以看到,它是先去我們給定的git地址下載項(xiàng)目,然后執(zhí)行我們配置好的runPre.sh 腳本
這里因?yàn)槲抑皹?gòu)建過,所以會(huì)出現(xiàn)刪除容器,第一次構(gòu)建不會(huì)出現(xiàn)
然后就開始執(zhí)行docker-maven的構(gòu)建操作
構(gòu)建完成之后就會(huì)執(zhí)行我們?cè)O(shè)置的腳本 runPost.sh (啟動(dòng)容器)
這里可以看到容器啟動(dòng)成功了。
網(wǎng)頁輸入地址就可以訪問到我們的程序
后面我們改了代碼,直接提交git,然后點(diǎn)擊構(gòu)建項(xiàng)目就行
(jenkins是可以自動(dòng)構(gòu)建了,這里主要的初步構(gòu)建,就沒有在說自動(dòng)構(gòu)建的情況)
服務(wù)器上輸出 docker ps 可以看到我們構(gòu)建的容器正在運(yùn)行中
注 : 第一次啟動(dòng)可能會(huì)報(bào)以下錯(cuò)誤sudo: no tty present and no askpass program specified
附上解決方法
總結(jié)
以上是生活随笔為你收集整理的jenkin+docker 构建项目的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 基于STM32高级定时器的全桥移相PWM
- 下一篇: 「竞品分析报告」不会写?不知从哪收集数据