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