使用docker -v 和 Publish over SSH插件實現(xiàn)war包自動部署到docker的操作步驟
上篇文章在docker容器掛載宿主主機(jī)目錄 中介紹了運行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)部目錄和宿主主機(jī)目錄進(jìn)行關(guān)聯(lián),這樣操作宿主主機(jī)關(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自動打包并部署到遠(yuǎn)程tomcat中,這里講怎么部署到docker中
首先已經(jīng)得到war包了,下面要做的就是怎么把war包拷貝到docker容器關(guān)聯(lián)的宿主主機(jī)對應(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 :主機(jī)的登錄賬號
Remote Directory:根路徑 (注意后續(xù)的路徑都是相對這個路徑來操作的,最好設(shè)置為 /)
配置好后,點擊測試配置,顯示成功后保存關(guān)閉
3. 在具體項目中勾選 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ù)器的目錄,
需要注意的是,這里是相對于第二步中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)文章
2023年windows?DockerDeskTop最新款4.18.0?全程保姆級安裝圖文教程
這篇文章主要介紹了2023年windows?DockerDeskTop最新款4.18.0?全程保姆級安裝圖文教程,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-04-04
Docker Compose 輕松管理多容器應(yīng)用小結(jié)
Docker Compose 是管理多容器應(yīng)用的利器,通過一個簡單的 YAML 文件,開發(fā)者可以輕松定義服務(wù)、網(wǎng)絡(luò)和數(shù)據(jù)卷的配置,這篇文章主要介紹了Docker Compose :輕松管理多容器應(yīng)用,需要的朋友可以參考下2024-12-12
ubuntu如何在docker容器中安裝strongswan
這篇文章主要介紹了ubuntu如何在docker容器中安裝strongswan,起動一個ubuntu容器,我是用的docker compose啟動的,compose的配置文件為ipsec-strongswan.yml,感興趣的朋友跟隨小編一起看看吧2024-04-04
docker-maven-plugin打包鏡像并上傳到私有倉庫
本文主要介紹了docker-maven-plugin打包鏡像并上傳到私有倉庫,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-09-09
docker使用alpine構(gòu)建jdk21鏡像的詳細(xì)步驟
這篇文章主要給大家介紹了關(guān)于docker使用alpine構(gòu)建jdk21鏡像的詳細(xì)步驟,鏡像中包含了應(yīng)用程序所需要的運行環(huán)境,函數(shù)庫,配置,以及應(yīng)用本身等各種文件,這些文件分層打包而成,需要的朋友可以參考下2024-03-03
Docker容器化部署嘗試——多容器通信(node+mongoDB+nginx)
這篇文章主要介紹了Docker容器化部署嘗試——多容器通信(node+mongoDB+nginx),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-12-12

