1. 程式人生 > >docker部署web專案(用tomcat)

docker部署web專案(用tomcat)

  • 建立tomcat容器   -d指後臺執行   --name : 起別名    -p 對映的埠
docker run tomcat --name mytomcat -p 8080:8080 -d
  • 進入容器內部  容器內部有一些設定檔案 只能通過這種方式進入
互動式的進入tomcat容器。“docker exec”命令表示在執行中的容器中開啟一個新的程序。docker exec -it mytomcat /bin/bash
檢視到webapps路徑為:/usr/local/tomcat/webapps。等下需要把war包拷貝到該路徑下。然後tomcat會把war包自動解壓
  • 上傳war包到容器   需要在開啟一個終端 (比較方便)
docker中也可以使用cp命令完成和宿主機的檔案拷貝。docker cp   /xxxx.war   mytomcat:/usr/local/tomcat/webapps
  • 重啟容器 (正常應該重啟,我沒有重啟直接就被tomcat載入了)
  • docker restart mytomcat
重啟容器,然後就可以發現上傳的war包已經自動解壓部署了。進入webapps目錄即可檢視。
  • 訪問應用
       要注意訪問的路徑可能和自己本機測試跑的路徑不同。如果你本身是一個多module專案,本地測試跑起來的url路徑與目前單獨war包部署跑起來的路徑肯定是不同的。  如:正常在本地測試時  192.168.0.1:8080/直接就是根目錄 而部署之後需要192.168.0.1:8080/專案名/才可以訪問正常路徑,一些靜態檔案也載入不上來 (巨坑啊)

    解決辦法:(正常不用docker部署 也需要這樣配置)

還是進入容器內部 ls一下 發現有個  conf

LICENSE  NOTICE  RELEASE-NOTES    RUNNING.txt  bin  conf    include  lib  logs  native-jni-lib  temp  webapps  work

進入 conf 有個server.xml檔案  我們需要在這裡加一些引數 (重點是容器內部不支援 vi和vim這種命令只能檢視)

水平有限 我把這個檔案拷貝到主機 根目錄

docker cp mytomcat:/usr/local/tomcat/conf/server.xml /

然後用window改的server.xml檔案

在配置檔案最後面加上<Context path="" docBase="/usr/local/tomcat/webapps/mw-project"  debug="0" reloadable="true"></Context>

只需要把mw-project 改成你的專案名  (為什麼不加字尾war,因為war解壓好就是這個檔案夾了,到webapps/下可以看到)

最後配置完成我們需要覆蓋 容器內部的server.xml

docker cp /server.xml mytomcat:/usr/local/tomcat/conf/server.xml

這樣就把配置檔案修改好了 重新執行  docker restart mytomcat  完美!