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/文件名

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Docker是一个开源的容器化平台,可以帮助开发者将应用程序和所有相关的依赖项打包一个容器,然后在不同的环境运行。而Spring Boot是一个用于开发Java应用程序的框架,可以简化应用程序的配置,并提供了内置的Web服务器等功能。 使用Docker部署Spring Boot应用程序,并使用脚本每次替换Jar文件,可以采取以下步骤: 1. 首先,确保在本地环境已经安装了DockerDocker Compose。这些工具可以提供方便的容器管理和编排能力。 2. 创建一个Dockerfile,用于定义Docker镜像的构建规则。在Dockerfile,指定使用的基础镜像、拷贝Spring Boot应用程序的Jar文件到容器,并设置容器的入口命令。 3. 在Dockerfile同级目录下,创建一个docker-compose.yml文件,用于定义Docker容器的编排规则。在这个文件,指定要运行的服务容器的名称、端口映射等信息。 4. 编写一个简单的脚本,用于构建Docker镜像并启动容器。在脚本,可以使用Docker命令进行相关的操作,如构建镜像、删除旧的容器、运行新的容器等。脚本可以将这些操作整合到一起,并根据需要传递参数,如新的Jar文件的路径。 5. 在每次需要部署更新的时候,将新的Spring Boot应用程序的Jar文件复制到指定的目录。然后运行部署脚本,脚本会自动构建新的Docker镜像,并在Docker容器运行最新的应用程序。 通过以上步骤,我们可以实现使用Docker部署Spring Boot应用程序,并使用脚本每次替换Jar文件。这样可以方便地进行应用程序的更新和部署,并确保每次部署都是基于最新的Jar文件进行的。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值