容器化的 Spring 应用程序看不到本地文件?

2024-04-09

我有一个 spring boot 应用程序和一个 postgresql 数据库。我在容器中运行它们docker-compose。问题是,正常的通话,例如。localhost:8080/api/users返回正常值并正常运行。

但是,当我尝试访问时localhost:8080/api/images/x.png它应该返回一个图像,但我得到的是这个:

java.io.FileNotFoundException: File '/tmp/tomcat-docbase.9528987821055837875.8080/images/Mercedes-Benz-190E-Sedan-2.0 Petrol-1989-Engine.png' does not exist

这是最初的 Dockerfile:

FROM openjdk:11-jre-slim
ARG JAR_FILE=target/*.jar
COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java","-jar","/app.jar"]

我把它改成这样:

FROM openjdk:11-jre-slim
ARG JAR_FILE=target/*.jar
ADD . ./src/main/webapp/images/
COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java","-jar","/app.jar"]

现在,当我尝试访问图像时,我得到以下信息:

java.io.FileNotFoundException: File '/src/main/webapp/images/Mercodes-Benz-190E-Sedan-2.0 Petrol-1989-Engine.png' does not exist

当应用程序从 IDE 本地启动时,调用工作得很好,也许我的 Dockerfile 设置是错误的?我对 docker 还很陌生,任何提示都会受到赞赏。

编辑:图像文件位于 src/main/webapp/images/{files}


None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

容器化的 Spring 应用程序看不到本地文件? 的相关文章

随机推荐