之前在书上 看到 springboot 的属性文件 是有优先级的,jar包外面的属性文件的优先级高于jar包里面的
最近在部署自动化部署的 时候 springcloud中的eureka 集群 遇到了一个问题
springboot配置文件读取不到外面属性文件的值
自己以前在本地测试的时候是没有问题的,确实看到 外置文件的优先级 大于jar包里面文件的优先级
但是到docker 容器 里面一看就是不行
一开始是怀疑dockerfile 的CMD 或者 EntryPoint 写错了
尝试改了一下 还是没有用,
这个时候我注意了一下 ,会不会是目录的问题
dockerfile 脚本里面有这么一段:
java -jar /xxx/xxx/xxx/xxxx.jar
会不会读取外置配置文件的目录是 执行java -jar 的目录了?
赶紧再本地进行测试,还真是的
所以 解决方法也是很简单的,在执行前 改变一下 了目录就ok啦
cd /xxx/xxx/xxx/
java -jar xxxx.jar
这样就成功启动了
一个很小的问题,平时没怎么关注。关键时候还是 很重要的 哈哈。
2019-04-30 补充
如果不cd到jar包的目录可不可以了?
其实也是可以的,需要在命令里面加点东西
命令如下
java -jar /xxx/xxx/xxx/xxxx.jar --user.dir= /xxx/xxx/xxx/
效果是一样的