1 导致不生效原因
1.1 Springboot加载配置说明
Spring Boot加载配置文件,默认会从几个固定位置搜索一下看看有没有配置文件

看到这里就明白了后面的两个file:的目录是相对目录,相对的不是jar 包的目录,而是执行java -jar 的目录
1.2 示例说明
java -jar命令启动项目时,只能自动加载执行此命令同级目录的配置文件
假如你的jar包路径为: /usr/apps/app.jar
而你在根目录“/”下执行了:java -jar /usr/apps/app.jar
那么你的配置文件不应该放在 /usr/apps/config 或者/usr/apps/ 下,而是应该放在 / 或者 /config下
2 解决方案一
把配置文件挂载到docker 容器内执行java -jar 的目录
2.1 查看容器内执行java -jar 的目录
Docker 执行 java -jar 命令启动时 会有一个固定的相对目录来执行。该相对目录为进入容器看到的目录:
进入容器命令如下:
docker exec -it 容器名称 /bin/bash

进入容器后使用pwd 查看当前文件目录 根据该目录来挂着配置文件
Ø docker run 如下进行配置文件挂载
-v /home/applicatiom.yml:/script/application.yml
Ø docker-compose.yml如下配置文件挂载

3 解决方案二
配置文件直接挂载到与app.jar包相同的目录,指定spring.config.location属性
java -Xms256m -Xmx512m -jar /opt/eip/bpm-model.jar --spring.config.location=classpath:/config/application.yml,/opt/eip/application-uat.yml
ENTRYPOINT ["sh", "-c", "java -Xms256m -Xmx512m -jar /opt/eip/bpm-model.jar --spring.config.location=classpath:/config/application.yml,/opt/eip/application-uat.yml", "&"]
注意:该方案不用指定active 但是必须指定base模块下的application.yml 即classpath:/config/application.yml 和 外部的配置文件 如/opt/eip/application-uat.yml