Docker镜像获取不到resources目录下文件

469 阅读1分钟

无法读取resources目录下文件问题

最近在开发Java服务时,遇到了一个关于获取资源目录下文件的问题。在本地测试时,一切都运行正常,但是当将应用部署到测试环境后,却遇到了获取文件失败的情况,导致出现了空指针异常。

经过调查,发现这是由于我们的Java项目被打包成了JAR包形式,并在Docker容器内运行。在Spring Boot项目中,要读取资源目录下的文件,通常需要通过流的形式进行读取。然而,由于我的需求是直接获取文件而不是流,这种方式变得十分繁琐。因此,我选择了在Docker容器启动时将文件复制到容器内部的目录,以便后续读取。

这种方法解决了获取资源目录文件的问题,使得我们可以更加便捷地操作文件,避免了繁琐的流操作。

dockerFile 添加复制命令

image.png

代码中直接new file 读取即可

new File("./ai/model/document_classify.model")

docker容器目录内部我们也可以直接查看到我们的文件

image.png