使用docker -v 和 Publish over SSH插件實(shí)現(xiàn)war包自動(dòng)部署到docker的操作步驟
上篇文章在docker容器掛載宿主主機(jī)目錄 中介紹了運(yùn)行docker時(shí)的一個(gè)重要命令 -v
sudo docker run -p 8822:8080 --name tomcat_xiao_volume -v /home/xiaochangwei/test:/usr/local/tomcat/webapps xiaochangwei/tomcat:v1
將容器內(nèi)部目錄和宿主主機(jī)目錄進(jìn)行關(guān)聯(lián),這樣操作宿主主機(jī)關(guān)聯(lián)目錄時(shí),就會(huì)同步關(guān)聯(lián)操作了容器對(duì)應(yīng)目錄,
這在發(fā)布war包時(shí)尤其有用, 容器啟動(dòng)后就無需再關(guān)心了,只需要將需要更新的war包拷貝到關(guān)聯(lián)的目錄就可以了
本篇文章就是為了簡(jiǎn)化拷貝工作
docker利用WebHook實(shí)現(xiàn)持續(xù)集成 中實(shí)現(xiàn)了git提交代碼觸發(fā)jenkins自動(dòng)打包并部署到遠(yuǎn)程tomcat中,這里講怎么部署到docker中
首先已經(jīng)得到war包了,下面要做的就是怎么把war包拷貝到docker容器關(guān)聯(lián)的宿主主機(jī)對(duì)應(yīng)目錄
jenkins提供了插件Publish over SSH 官方介紹https://wiki.jenkins.io/display/JENKINS/Publish+Over+SSH+Plugin
操作步驟:
1.安裝插件 Publish over SSH
2.在系統(tǒng)管理-系統(tǒng)設(shè)置最后設(shè)置ssh server信息 如下:
解釋下:
Passphrase ?。?主機(jī)的登錄密碼
Hostname : 主機(jī)的地址
Username ?。褐鳈C(jī)的登錄賬號(hào)
Remote Directory:根路徑 (注意后續(xù)的路徑都是相對(duì)這個(gè)路徑來操作的,最好設(shè)置為 /)
配置好后,點(diǎn)擊測(cè)試配置,顯示成功后保存關(guān)閉
3. 在具體項(xiàng)目中勾選 Send files or execute commands over SSH after the build runs 并配置如下
解釋下參數(shù):
Name ?。?就是上一步配置的server名字,下拉選擇
source File :就是war包路徑 jenkins打包后再target目錄下
prefix ?。?就是war包路徑的前綴,去掉前綴后就是war包了
Remote directory: 需要放到遠(yuǎn)程服務(wù)器的目錄,
需要注意的是,這里是相對(duì)于第二步中Remote Directory的路徑, 比如第2步我設(shè)置的是/root 如果這里我這只為 /package 那么對(duì)應(yīng)的目標(biāo)路徑就是/root/packages
這里問了更好的區(qū)分,我使用了時(shí)間戳,這就需要勾選上 Remote directory is a date format,并且非時(shí)間格式的地方都需要用引號(hào)包含起來
比如我這里設(shè)置的是 '/packages/'yyyyMMddHHmmss-${BUILD_NUMBER} 最后的${BUILD_NUMBER}是jenkins變量,就是打包次數(shù),和last buid對(duì)應(yīng)
Exec command: 是需要執(zhí)行的命令,可以設(shè)置任何linx可以執(zhí)行的命令或者shell腳本
設(shè)置好后保存,打包測(cè)試:
根據(jù)控制臺(tái)輸出,可以看出設(shè)置的shell命令也執(zhí)行了,而且提示文件也上傳到配置的服務(wù)器上了(后的137錯(cuò)誤是因?yàn)槲业陌⒗镌品?wù)器內(nèi)存太小,自動(dòng)部署到tomcat上失敗了,這個(gè)與本次講的無關(guān),請(qǐng)忽略)
注意此次打包號(hào)為 #27
到服務(wù)器上對(duì)應(yīng)目錄看下上傳情況
證明war包已經(jīng)上傳到了對(duì)應(yīng)的目錄了
這樣 就可以設(shè)置對(duì)應(yīng)的目錄和docker容器關(guān)聯(lián)后,實(shí)現(xiàn)war包的自動(dòng)更新發(fā)布和備份了,這里加了時(shí)間戳適合于備份,單純的發(fā)布就不要加時(shí)間戳了
總結(jié)
以上所述是小編給大家介紹的使用docker -v 和 Publish over SSH插件實(shí)現(xiàn)war包自動(dòng)部署到docker的操作步驟,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
使用Docker-compose部署mysql的簡(jiǎn)單步驟
Docker-compose是Docker官方推出的一個(gè)工具,用于定義和運(yùn)行多個(gè) Docker 容器的應(yīng)用程序,下面這篇文章主要給大家介紹了關(guān)于使用Docker-compose部署mysql的簡(jiǎn)單步驟,需要的朋友可以參考下2023-04-04docker容器通信參數(shù)使用及l(fā)ink參數(shù)介紹
這篇文章主要介紹了docker容器通信參數(shù)使用及l(fā)ink參數(shù)介紹,link的原理就是在/etc/hosts里面添加了一個(gè)alias的名稱,本文通過案例分析給大家詳細(xì)講解,需要的朋友可以參考下2022-09-09docker官方鏡像下載及使用Dockerfile創(chuàng)建鏡像的方法
這篇文章主要介紹了docker官方鏡像下載及使用Dockerfile創(chuàng)建鏡像的方法,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-02-02Docker搭建prometheus(普羅米修斯)的方法步驟
phometheus:當(dāng)前一套非常流行的開源監(jiān)控和報(bào)警系統(tǒng),本文主要介紹了Docker搭建prometheus(普羅米修斯)的方法步驟,具有一定的參考價(jià)值,感興趣的可以了解一下2024-02-02Docker深度清除鏡像緩存overlay2的實(shí)現(xiàn)
維清理鏡像是通過命令?docker?rm?i?刪除鏡像的,但是這條命令不會(huì)刪除docker?build命令產(chǎn)生的緩存文件,本文主要介紹了Docker深度清除鏡像緩存overlay2的實(shí)現(xiàn),感興趣的可以了解一下2023-12-12Docker遇到Intellij IDEA,Java開發(fā)提升了十倍生產(chǎn)力
這篇文章主要介紹了Docker遇到Intellij IDEA,Java開發(fā)提升了十倍生產(chǎn)力,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-10-10詳解Docker Swarm服務(wù)發(fā)現(xiàn)和負(fù)載均衡原理
這篇文章主要介紹了詳解Docker Swarm服務(wù)發(fā)現(xiàn)和負(fù)載均衡原理,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-05-05