Docker中spingboot项目加载外挂配置(不生效的一种解决方法)

最新在学习秒杀项目的时候,学到了springboot项目在加载的时候能够根据不同情况加载外挂的application.properties,这样就不用每次改动就重新打包。具体命令行就是

java -jar emall.jar --spring.config.additional-location=配置文件位置

关于 --spring.config.additional-location和 --spring.config-location的区别可以自行百度。

但是在利用docker制作容器后,发现外挂配置不生效,百度了一天综合各种文章找到了解决方案

主要的坑就是上述的配置文件不能写linux系统中的文件位置,应该指的是springboot项目所在容器中的路径

但是容器中原本并没有配置文件,所以我们写dockerfile的时候,除了ADD 你的项目jar包,还应该把外挂的properties给COPY进来

也就是在dockerfile合适的地方加上

COPY application.properties /etc/

后面的路径可以随便写一个存在的,然后在ENTRYPOINT中加上相关的配置语句

ENTRYPOINT ["java","-jar","emall.jar","--spring.config.additional-location=/etc/application.properties"]

重新生成image,利用image构建容器,发现外挂配置加载正常


版权声明:本文为qq_43817045原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。