簡體   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