我在 Intellij 中開發了一個 Web 應用程式(maven、tomcat),并設法通過 Intellij 中的“服務”選項卡創建了一個容器,這要歸功于簡單的部署配置。在這個程序中,遇到快取大小不夠的問題,于是我在本地手動更改了tomcat的context.xml(添加<Resources cacheMaxSize="51200" />)檔案,之后應用就可以順利運行了。
總結 Intellij 中服務選項卡下的容器創建(參見影像底部):
- pulling an image: tomcat:9.0.65-jre8
- container name
- bind ports: 127.0.0.1:8080:8080
- bind mounts: mount host path which contains the war WITH /usr/local/tomcat/webapps
雖然不確定,但我猜我創建的 war 檔案已經考慮了我在context.xml檔案中所做的更改,因為我的應用程式服務器是我下載并對其 context.xml 進行更改的 tomcat。
但是,我還需要創建一個帶有 dockerfile 的容器:
我的 dockerfile 是:
FROM maven:3.8.4-jdk-8 as maven_builder
COPY . /usr/src/maven_pdfparse
WORKDIR /usr/src/maven_pdfparse
RUN mvn clean install -f /usr/src/maven_pdfparse && mkdir /usr/src/wars/
RUN find /usr/src/maven_pdfparse/ -iname '*.war' -exec cp {} /usr/src/wars/ \;
ADD pom.xml .
FROM tomcat:9.0.65-jre8
COPY --from=maven_builder /usr/src/wars/* /usr/local/tomcat/webapps
當我在 docker 上運行它時,我再次遇到了“快取不足”的問題。
那么如何在創建 dockerfile 時對 context.xml 進行相同的更改?
或者有沒有辦法在我通過部署配置創建容器時自動獲取 dockerfile?

uj5u.com熱心網友回復:
如果您希望添加或修改context.xml檔案,您有幾個選項可供選擇。
context.xml作為鏡像構建的一部分,您可以修改鏡像中已有的檔案。RUN使用命令列工具添加命令,例如sed將所需<Resources>元素添加到檔案中。- 您還可以擁有該檔案的預修改版本,然后將其復制到影像中以覆寫現有版本。
- 在呼叫通常的 tomcat 啟動腳本之前,您可以添加一個自定義啟動命令來修改
context.xml(例如sed,按照選項 1 使用)。使用這種機制,您還可以cacheMaxSize從環境變數中獲取要使用的值,從而允許對值進行運行時控制。
uj5u.com熱心網友回復:
請檢查這個答案
Tomcat 8 拋出 - org.apache.catalina.webresources.Cache.getResource 無法添加資源
您需要context.xml通過復制更新和重建影像的位置context.xml
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/510013.html
標籤:码头工人行家雄猫智能理念
下一篇:如何創建JRE來運行jar程式?
