繁体   English   中英

Spring 配置文件与 ConfigServer 结合使用

[英]Spring Profiles in combination with ConfigServer

我有一个非常基本的 Spring 引导配置服务器(刚刚添加了依赖项并使用 @EnableConfigServer 注释了主类)。

一般来说,我想为我的每个应用程序支持具有不同属性源的多个环境,这是 ConfigServer 本身的示例:

配置文件:默认(类路径上的 application.yml):

在此处输入图像描述

配置文件:docker(类路径上的 application-docker.yml):

在此处输入图像描述

配置文件:默认(ConfigServer 存储库中的 application.yml):

在此处输入图像描述

因此,在我的情况下,所有三个屏幕截图中的所有属性都应该处于活动状态,我希望顺序/优先级如下:

  1. 来自类路径的 application.yml
  2. application- 来自类路径的ANY_PROFILE .yml
  3. 来自配置仓库的 application.yml
  4. 来自配置仓库的APP-NAME .yml(在这种情况下不存在)

到目前为止,这完美无缺,除了我遇到的问题是,当我使用命令启动应用程序时(当然是在容器内),类路径上的 application-docker.yml 被忽略:

java -jar -Dspring-boot.run.profiles=docker *.jar

正如你在这里看到的: 在此处输入图像描述

我的问题是,即使我将配置文件作为命令行参数提供,它也不会被拾取。 这是为什么?

更新,这里是 Dockerfile 和 entrpoint.sh:

在此处输入图像描述

在此处输入图像描述

要激活一个或多个配置文件,请执行以下操作之一:

  1. 使用 VM 参数激活-Dspring.profiles.active=<profiles>
  2. 使用程序激活 arguments --spring.profiles.active=<profiles>

按照您的示例,以下内容应该有效:

java -jar -Dspring.profiles.active=docker *.jar

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM