docker:(5)利用docker -v 和 Publish over SSH插件實現war包自動部署到docker

在 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包的自動更新發布和備份了,這裏加了時間戳適合於備份,單純的發佈就不要加時間戳了

相關文章
相關標籤/搜索