我在其中指定了配置文件的路径,这是我的应用程序.properties.我需要在运行时读取此文件.

app.config = myApp/myConfig.conf

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

我的docker文件:

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

推荐答案

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

Example1:如果你的文件 struct :

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

Dockerfile(根据您的文件 struct ,复制的.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"]

Example2:如果您的文件 struct :

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

Dockerfile(根据您的文件 struct ,复制的.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"]

Java相关问答推荐

无法在Java中将hhmmss格式的时间解析为LocalTime

OpenJDK、4K显示和文本质量

我的scala文件失败了Scala.g4 ANTLR语法

如何在Java中声明未使用的变量?

AlarmManager没有在正确的时间发送alert

编译多个.Java文件并运行一个依赖于用户参数的文件

基于调车场算法的科学计算器

如何正确创建序列图?

通过移动一个类解决了潜在的StubbingProblem.它怎麽工作?

测试何时使用Mockito强制转换对象会导致ClassCastException

无法在Java中处理PayPal支付响应

使用Jackson库反序列化json

在Ubuntu 23.10上使用mp3创建JavaFX MediaPlayer时出错

如何读取3个CSV文件并在控制台中按顺序显示?(Java)

垃圾回收器是否真的删除超出作用域的对象?

寻找Thread.sky()方法的清晰度

在Java中将.GRF转换为图像文件

处理4.3问题:javax.xml.ind包不存在(&Q;).您可能在学习GitHub教程时遗漏了库.&Q

使用同步方法中的新线程调用同步方法

在JPanel上使用GridBagLayout并将JButton放在里面时出现问题