0

私は非常に基本的な Spring Boot Config Server を持っています (依存関係を追加し、@EnableConfigServer で注釈付きのメインクラスを追加しただけです)。

一般に、アプリケーションごとに異なるプロパティソースを使用して複数の環境をサポートしたいと考えています。ここに ConfigServer 自体の例を示します。

プロファイル: デフォルト (クラスパス上の application.yml):

ここに画像の説明を入力

プロファイル: docker (クラスパス上の application-docker.yml):

ここに画像の説明を入力

プロファイル: デフォルト (ConfigServer のリポジトリ内の application.yml):

ここに画像の説明を入力

したがって、私の場合、3 つのスクリーンショットすべてのすべてのプロパティがアクティブである必要があります。順序/優先度は次のようになります。

  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

ここでわかるように: ここに画像の説明を入力

私の質問は、コマンド ライン引数としてプロファイルを指定しても、取得されないということです。何故ですか?

UPDATE、ここに Dockerfile と entrpoint.sh があります:

ここに画像の説明を入力

ここに画像の説明を入力

4

1 に答える 1