spring boot 打成jar包 docker部署找不到resource下面文件问题

1. 背景说明

最近使用springboot项目进行docker部署时,找不到自定义的文件信息,(一直报错known)百度了很久, 也没能解决问题,还是一直找不到解决方式。

a. docker构建镜像部署成功,但是要读取background中的文件 一直读取不到:

b. 我们看target目录,发现文件也已经打包进去了:

 c. 使用 this.class.getResourceAsStream("文件");可以正常读取到,但是他返回的是InputStream,无法构建出我们想要的File。

File file = new File(resource);

2. 解决方式

a. 因为当前项目中,使用到的是gitlab-ci实现自动打包部署的方式,进行项目docker部署的(后续会整理相关文档);

--自动部署:当有代码提交时,会自动构建docker镜像,并进行部署;

b. 在构建镜像时,把我们要用到的资源文件(resource下的文件),构建到我们的镜像中:

 

c. 同时,在代码中取文件的时候,使用  ClassPathResource 方法,进行获取:

 import org.springframework.core.io.ClassPathResource;

 String resource = new ClassPathResource("文件路径").getPath();
 File file = new File(resource);

 没有试验Hutool中的 ClassPathResource方法,猜测应该也可以;

注意:(gitlab-ci)在构建镜像时,如果提示找不到你的资源文件,请加入缓存机制,把文件进行缓存,这样,就不会找不到你的文件了,如下图:

你的努力,终将成为你最有力的资本! 

  • 6
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SerryYang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值