gpt4 book ai didi

java - 将 Spring Boot 应用程序作为 Docker 镜像启动时无法解析配置类

转载 作者:行者123 更新时间:2023-12-02 19:49:41 27 4
gpt4 key购买 nike

Dockerfile:

FROM java:8-jdk-alpine
RUN mkdir -p /usr/app
RUN mkdir -p /usr/app/logs/
COPY ./storefront/build/libs/storefront-0.0.1-SNAPSHOT.jar /usr/app
WORKDIR /usr/app
EXPOSE 8080
ENTRYPOINT ["java", "-jar", "storefront-0.0.1-SNAPSHOT.jar"]

启动.sh
sudo docker build ./ -t platform
sudo docker run -p 8080:8080 platform

错误:
2020-05-11 11:53:01.925 ERROR 1 --- [           main] o.s.boot.SpringApplication               : Application run failed

org.springframework.beans.factory.BeanDefinitionStoreException: Failed to parse configuration class [lv.dz.platform.storefront.StorefrontApplication]; nested exception is java.io.FileNotFoundException: /home/daniel/projects/MY/platform/storefront/src/main/resources/application.properties (No such file or directory)

笔记:

java -jar storefront-0.0.1-SNAPSHOT.jar 合作和 ./gradlew bootRun
有任何想法吗?

更新:

问题出在其中一个模块(不是店面)中,其中 @PropertySource 被定义为 application.properties 的完整路径。通过删除这一行来解决,因为它是旧代码。

最佳答案

它可以在您的计算机上运行,​​因为您依赖于本地文件 /home/daniel/projects/MY/platform/storefront/src/main/resources/application.properties .在容器内构建并运行 java 文件后,您的代码仍会尝试加载 application.properties来自 /home/daniel/projects/MY/platform/storefront/src/main/resources/application.properties 的文件容器内不存在。

在您的应用程序内部将绝对路径更改为相对路径。
使用 docker 功能 multi-staged build .在构建 docker 镜像期间构建您的 jar 文件。

关于java - 将 Spring Boot 应用程序作为 Docker 镜像启动时无法解析配置类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61729158/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com