如何获取运行 docker 的 application.properties 中指定的配置文件

How to get config-file specified in application.properties running docker

提问人:davebo92123 提问时间:11/16/2023 更新时间:11/17/2023 访问量:39

问:

我有我的application.properties,我在其中指定了配置文件的路径。我需要在运行时读取此文件。

app.config = myApp/myConfig.conf

该文件位于我项目的根目录中。当我运行我的容器时,找不到我的配置文件。我的容器怎么可能通过我的application.properties中指定的路径找到我的配置文件?

我的dockerfile:

FROM  eclipse-temurin:17.0.8.1_1-jre
COPY ./target/myApp.jar app.jar
ENTRYPOINT ["java", "-jar", "app.jar"]

构建映像:

docker build -t myApp:myApp .

运行 docker:

docker run -p 8080:80 --name myAppContainer idOfImage

执行docker run后,我遇到了找不到的错误myApp/myConfig.conf

Java Spring Docker 容器

评论


答:

1赞 Ömer Sezer 11/17/2023 #1

在构建映像时,应将配置文件复制到映像中。myApp/myConfig.conf

示例1:如果您的文件结构:

Project Directory
-- Dockerfile
-- target
---- myApp.jar
-- myApp
---- myConfig.conf

Dockerfile(根据您的文件结构,复制的 .conf 文件路径会发生变化):

FROM  eclipse-temurin:17.0.8.1_1-jre
COPY ./target/myApp.jar app.jar
COPY ./myApp/myConfig.conf ./myApp/myConfig.conf
ENTRYPOINT ["java", "-jar", "app.jar"]

示例2:如果您的文件结构:

Project Directory
-- Dockerfile
-- target
---- myApp.jar
---- myApp
------- myConfig.conf

Dockerfile(根据您的文件结构,复制的 .conf 文件路径会发生变化):

FROM  eclipse-temurin:17.0.8.1_1-jre
COPY ./target/myApp.jar app.jar
COPY ./target/myApp/myConfig.conf ./myApp/myConfig.conf
ENTRYPOINT ["java", "-jar", "app.jar"]