亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在 Kuberetes 上的容器中將應用程序配置與 AP 分開?

如何在 Kuberetes 上的容器中將應用程序配置與 AP 分開?

MMMHUHU 2023-02-23 16:15:31
我想部署一個在 Kubernetes 上使用外部配置的應用程序。我為 war 文件構建了一個 spring boot 應用程序并將其放入 websphere liberty。然后將 application.properties 放入我希望我的應用程序使用的/config/config(/config是的快捷方式)。/opt/ibm/wlp/usr/servers/defaultServer我寫了一個 Dockerfile 如下:FROM websphere-liberty:19.0.0.6-javaee8USER rootRUN mkdir -p /ibank-pv && chown -R 1001:0 /ibank-pvRUN mkdir -p /config/config/ && chown -R 1001:0 /config/configCOPY --chown=1001:0 ibank.war /config/apps/COPY --chown=1001:0 server.xml /configCOPY --chown=1001:0 application.properties /config/config/USER 1001CMD ["/opt/ibm/wlp/bin/server","run","defaultServer"]這是我的server.xml。我設置${server.config.dir}/config為配置資源文件夾。<?xml version="1.0" encoding="UTF-8"?><server description="new server">    <featureManager>        <feature>javaee-8.0</feature>    </featureManager>    <basicRegistry id="basic" realm="BasicRealm">        <!-- <user name="yourUserName" password="" />  -->    </basicRegistry>    <httpEndpoint id="defaultHttpEndpoint"                  httpPort="9080"                  httpsPort="9443" />    <applicationManager autoExpand="true"/>    <library id="configResources">        <folder dir="${server.config.dir}/config" />    </library>    <application location="ibank.war">        <classloader privateLibraryRef="configResources" />    </application></server>我添加這些代碼來讀取 application.properties 中的${server.config.dir}/config。public class IbankServlet extends HttpServlet {    private static final long serialVersionUID = 7526471155622776147L;    private final Properties config;    public IbankServlet() throws Exception {        InputStream is = getClass().getResourceAsStream("application.properties");        config = new Properties();        config.load(is);    }}但是,當我啟動服務器我的應用程序時,它仍然讀取application.propertieswar 文件中的內容。我必須做的是讓我的應用程序application.properties在${server.config.dir}/config.
查看完整描述

1 回答

?
慕妹3146593

TA貢獻1820條經驗 獲得超9個贊

getClass().getResourceAsStream("relative-path")是在指定類的 Java 包中查找的問題嗎?也就是說,無論哪個子目錄對應的是.java的Java包IbankServlet。換句話說,您的application.propertiesWAR 文件是否埋在包子目錄中?

如果是這樣,您需要更改為getClass().getResourceAsStream("/application.properties")(使用前導斜線),并將其移動到 WAR 文件中的類路徑根目錄,或者讓 Docker 文件將其復制到正確的子目錄中。

但是,如果您IbankServlet實際上根本不在 Java 包中,那么這可能不是問題。)

(但是,我承認,如果文件同時存在于您的 WAR 和“共享庫”中,我不確定優先級。)


查看完整回答
反對 回復 2023-02-23
  • 1 回答
  • 0 關注
  • 167 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號