在 docker:(3)docker容器掛載宿主主機目錄 中介紹了運行docker時的一個重要命令 -vhtml
sudo docker run -p 8822:8080 --name tomcat_xiao_volume -v /home/xiaochangwei/test:/usr/local/tomcat/webapps xiaochangwei/tomcat:v1
將容器內部目錄和宿主主機目錄進行關聯,這樣操做宿主主機關聯目錄時,就會同步關聯操做了容器對應目錄,git
這在發佈war包時尤爲有用, 容器啓動後就無需再關心了,只須要將須要更新的war包拷貝到關聯的目錄就能夠了web
本篇文章就是爲了簡化拷貝工做docker
docker:(4)利用WebHook實現持續集成 中實現了git提交代碼觸發jenkins自動打包並部署到遠程tomcat中,這裏講怎麼部署到docker中shell
首先已經獲得war包了,下面要作的就是怎麼把war包拷貝到docker容器關聯的宿主主機對應目錄tomcat
jenkins提供了插件Publish over SSH 官方介紹https://wiki.jenkins.io/display/JENKINS/Publish+Over+SSH+Plugin服務器
操做步驟:app
1.安裝插件 Publish over SSHssh
2.在系統管理-系統設置最後設置ssh server信息 以下:webapp
解釋下:
Passphrase : 主機的登陸密碼
Hostname : 主機的地址
Username :主機的登陸帳號
Remote Directory:根路徑 (注意後續的路徑都是相對這個路徑來操做的,最好設置爲 /)
配置好後,點擊測試配置,顯示成功後保存關閉
3. 在具體項目中勾選 Send files or execute commands over SSH after the build runs 並配置以下
解釋下參數:
Name : 就是上一步配置的server名字,下拉選擇
source File :就是war包路徑 jenkins打包後再target目錄下
prefix : 就是war包路徑的前綴,去掉前綴後就是war包了
Remote directory: 須要放到遠程服務器的目錄,
須要注意的是,這裏是相對於第二步中Remote Directory的路徑, 好比第2步我設置的是/root 若是這裏我這隻爲 /package 那麼對應的目標路徑就是/root/packages
這裏問了更好的區分,我使用了時間戳,這就須要勾選上 Remote directory is a date format,而且非時間格式的地方都須要用引號包含起來
好比我這裏設置的是 '/packages/'yyyyMMddHHmmss-${BUILD_NUMBER} 最後的${BUILD_NUMBER}是jenkins變量,就是打包次數,和last buid對應
Exec command: 是須要執行的命令,能夠設置任何linx能夠執行的命令或者shell腳本
設置好後保存,打包測試:
根據控制檯輸出,能夠看出設置的shell命令也執行了,並且提示文件也上傳到配置的服務器上了(後的137錯誤是由於個人阿里雲服務器內存過小,自動部署到tomcat上失敗了,這個與本次講的無關,請忽略)
注意這次打包號爲 #27
到服務器上對應目錄看下上傳狀況
證實war包已經上傳到了對應的目錄了
這樣 就能夠設置對應的目錄和docker容器關聯後,實現war包的自動更新發布和備份了,這裏加了時間戳適合於備份,單純的發佈就不要加時間戳了