2017-09-20 8 views
0

内のスプリングブートアプリケーションで外部設定を使用して、私は自分のアプリケーションのorg.rtuのドッキングウィンドウのイメージを構築するためにcom.spotify.dockerfile-maven-pluginを使用して春のブートアプリケーション/一部-輸入ドッキングウィンドウ-構成

マイドッカ-compose.ymlを持っています次のとおりです。

version: '3' 
services: 
    some-importer: 
    image: org.rtu/some-importer 
    build: . 
    zookeeper: 
    image: wurstmeister/zookeeper 
    ports: 
     - "2181:2181" 
    kafka: 
    image: wurstmeister/kafka 
    ports: 
     - "9092:9092" 
    environment: 
     KAFKA_ADVERTISED_HOST_NAME: 172.17.0.1 
     KAFKA_CREATE_TOPICS: "test:1:1" 
     KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181 
    volumes: 
     - /var/run/docker.sock:/var/run/docker.sock 

は、どのように私はそれが/data/some-importer/configフォルダから外部config.propertiesを使用する必要があることをdocker-compose up中に言うことができますか?

+0

可能な複製(https://stackoverflow.com/questions/23439126/how-to- mount-host-directory-in-docker-container) –

答えて

1

the commentsに記載されているように、最初のステップはmount a host directory in a docker containerです(カフカの場合と同じです)。たとえば、あなたが使用することができます。これは、あなたのドッカーコンテナに/config/data/some-importer/configフォルダをマッピングします

version: '3' 
services: 
    some-importer: 
    image: org.rtu/some-importer 
    build: . 
    # Adding a volume/mount 
    volumes: 
     - /data/some-importer/config:/config 

:リンク答えはまた、あなたがADDを使用してDockerfile以内にそれを追加することができていることに言及しています。ただし、これはイメージ自体に追加されます。設定を変更した場合は、変更を有効にするためにイメージを再構築する必要があります。

次の手順は、この設定ファイルを使用するようにSpringブートに指示することです。あなたは完全にカスタマイズされた場所(例えば。/config/config.propertiesを)したい場合は、起動時にspring.config.locationパラメータを使用することができます。

:それはcertain foldersに位置した場合に春ブーツが自動的に設定をピックアップします。それ以外の場合は、spring.config.locationで構成する必要があります。

私はあなたのイメージがどのように見えるか知りませんが、あなたはこのような何かを行うことができるはず:

ENTRYPOINT [ "sh", "-c", "java -jar /app.jar --spring.config.location=$CONFIG_LOCATION" ] 

私はそれが容易になり、ここで$CONFIG_LOCATIONという環境変数を、使用しています環境変数を使用して場所をカスタマイズします。たとえば、あなたはあなたのdocker-compose.ymlファイルに以下を追加することができます[?]ドッキングウィンドウコンテナにホストディレクトリをマウントする方法]の

version: '3' 
services: 
    some-importer: 
    image: org.rtu/some-importer 
    build: . 
    volumes: 
     - /data/some-importer/config:/config 
    # Configuring the environment variable 
    environment: 
     - CONFIG_LOCATION=file:/config/config.properties 
+0

ありがとう、私はそれを試してみます。私は実際には 'application.properties'を意味していましたが、私はそのようなファイルがconfigフォルダからspring-bootによって自動的に読み込まれると思います。 –

+0

btw、あなたはドッカーをとてもすばらしい、もう1つ質問します。あなたはビルドの仙骨の意味を知っていますか?ドッカーが作った?私は私の例では。 –

+1

@RomanTそれは依存します。 Springブートは、特定のディレクトリ内に置かれている場合、 'application.properties'を自動的に読み込みます。あなたは[ドキュメント](https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html#boot-features-external-configにリストを見つけることができます-application-property-files)を使用します。 (24.3) – g00glen00b

関連する問題