Я хочу развернуть приложение, которое использует экстенг-конфиг на Kubernetes.Я создал весеннее загрузочное приложение для файла war и поместил его в веб-сферу.Затем поместите application.properties в /config/config
(/config
- это ярлык /opt/ibm/wlp/usr/servers/defaultServer
), который я хочу использовать в своем приложении.Я пишу Dockerfile, как показано ниже:
FROM websphere-liberty:19.0.0.6-javaee8
USER root
RUN mkdir -p /ibank-pv && chown -R 1001:0 /ibank-pv
RUN mkdir -p /config/config/ && chown -R 1001:0 /config/config
COPY --chown=1001:0 ibank.war /config/apps/
COPY --chown=1001:0 server.xml /config
COPY --chown=1001:0 application.properties /config/config/
USER 1001
CMD ["/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.properties
, который находится в файле войны.Что мне нужно сделать, чтобы приложение использовало application.properties
в ${server.config.dir}/config
.