私は非常に基本的な Spring Boot Config Server を持っています (依存関係を追加し、@EnableConfigServer で注釈付きのメインクラスを追加しただけです)。
一般に、アプリケーションごとに異なるプロパティソースを使用して複数の環境をサポートしたいと考えています。ここに ConfigServer 自体の例を示します。
プロファイル: デフォルト (クラスパス上の application.yml):
プロファイル: docker (クラスパス上の application-docker.yml):
プロファイル: デフォルト (ConfigServer のリポジトリ内の application.yml):
したがって、私の場合、3 つのスクリーンショットすべてのすべてのプロパティがアクティブである必要があります。順序/優先度は次のようになります。
- クラスパスからの application.yml
- application-クラスパスからのANY_PROFILE .yml
- 構成リポジトリの application.yml
- 構成リポジトリの APP-NAME .yml (この場合は存在しません)
これまでのところ、これは問題なく動作しますが、コマンドを使用してアプリケーションを起動すると (もちろんコンテナー内で)、クラスパス上の application-docker.yml が無視されるという問題を除いて:
java -jar -Dspring-boot.run.profiles=docker *.jar
私の質問は、コマンド ライン引数としてプロファイルを指定しても、取得されないということです。何故ですか?
UPDATE、ここに Dockerfile と entrpoint.sh があります: