私はSpringブートベースのアプリケーションを実行するためにDockerイメージを構築しています。 application.propertiesを含むフォルダをコンテナにマウントして、実行時のプロパティファイルを提供できるようにする必要があります。ここで/home/user/config
私はjarファイルは、実行時にピックアップするapplication.properties
が含まれている私のDockerfile、エントリーポイント実行の前または後にドッカーマウントが発生する
FROM java:8
RUN mkdir /app
RUN mkdir /app/config
ADD myapp.jar /app/
ENTRYPOINT ["java","-jar","/app/myapp.jar"]
コンテナをキックオフすると、私はこれを実行し、
docker run -d -v /home/user/config:/app/config myapp:latest
です。
しかし、これは動作しません、アプリケーションの実行はこのマウントされたプロパティファイルをピックアップしません、それは、jarファイル内にパックされているデフォルトのファイルを使用しています。しかし、私がexec
を起動したコンテナに入れ、手動でエントリポイントcmdを再度実行すると、マウントされたファイルをピックアップすることで期待どおりに動作します。または、私はちょうどこの場合のDockerfileを正しく書いていませんでしたか? (他の場所の間で)現在のディレクトリの/config
サブディレクトリ内部application.properties
ため
手動で実行すると、どのディレクトリから実行しますか? '/'または '/ app'ですか? – Roman
申し訳ありませんが早すぎます。私は 'exec'の後にどこでコンテナの権利に走るのですか?私は '/ app'の下で実行するので、手動で実行されたcmdは' java -jar myapp.jar'でした。 – Derek
ああ、ちょうどすぐにcmdをどこか別の場所で実行しようとしました。だから私は、Spring Bootが外部設定を取り上げる方法を完全に理解していないという問題があると思います。 – Derek