SpringBoot打包成jar,使用docker 部署,关于文件上传本地哪些事

Posted 风车菊

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringBoot打包成jar,使用docker 部署,关于文件上传本地哪些事相关的知识,希望对你有一定的参考价值。

前因后果

  • 需求:需要给HR写一个自动祝福生日的机器人,就用了SpringBoot构建了一个项目,之后打包成jar,构建docker 镜像,部署。
  • 问题:因为,员工有关的信息,是无法通过某一个接口获取到的,所以是需要每隔一段时间上传一下 员工信息表,更新一下数据的。问题就出现再这个上传操作上,在本地好好的,部署到docker上就不行了,一上传,就提示你,文件路径不存在,无法上传问题。
  • 结论:排查发现,我们springBoot打包成jar后,部署到docker中,是无法直接往jar中写入文件的,因为jar文件就是一个文件,是无法进入里面操作的,所以需要,另外操作,构建镜像时,添加员工信息到指定目录,后面文件的读写都是直接 放在镜像文件中操作,不经过jar包了。

解决方案

编写docker文件

构建镜像的时候加入demo.xlsx 文件,demo.xlsx文件和jar包在同一个目录下,当然你也可以,自己指定一个存放文件的目录

都是在当前路径下build images

FROM openjdk:8-jre-alpine
ADD robot-service.jar /root/startup/app.jar # 添加jar到当前目录下,重命名为app
ADD demo.xlsx /root/startup/demo.xlsx # 同理
EXPOSE 8080
WORKDIR /root/startup/ # 切换到这个目录下,类似于 cd 操作
ENTRYPOINT ["java","-jar","app.jar"]

code 规范

你可以直接指定从 如下路径下读取和删除以及新增你的文件就不会有问题了,就绕过了jar包了

/root/startup/文件名

以上是关于SpringBoot打包成jar,使用docker 部署,关于文件上传本地哪些事的主要内容,如果未能解决你的问题,请参考以下文章

SpringBoot打包成jar,使用docker 部署,关于文件上传本地哪些事

springboot项目在docker中运行

DOCKER06_SpringBoot微服务项目打包成Docker镜像详解

DOCKER06_SpringBoot微服务项目打包成Docker镜像详解

Spring Boot 的项目打包成的 JAR 包,制作成 docker 镜像并运行

springboot打包成jar在linux上如何运行?