2016-11-06 12 views
3
私はコンコマンドオプションを経由して私のカスタムイメージに環境変数を渡すことでトラブルを抱えています

をするための環境変数を構成しますjvm引数を受け入れるシェルスクリプトに設定されたエントリポイントを持っています。 enrtypointドッキングウィンドウは、コマンド

  #!/bin/sh 
      export JAVA_HOME="/usr/java/latest/" 
      exec $JAVA_HOME/bin/java [email protected] 

から呼び出された私のrun.shは、私は、他のjarファイルの多くのための私のイメージを使用することができるため、実行時に命令するように値を渡す必要があり、ちょうど私のイメージにパラメータを変更します。

これは私が得るものです:

  $> docker-compose up 
      WARNING: The CONF_HOME variable is not set. Defaulting to a blank string. 
      WARNING: The APP_ENV variable is not set. Defaulting to a blank string. 
      WARNING: The UUID variable is not set. Defaulting to a blank string. 

私も のような答えのカップルを経てい:

Docker Compose - Command using Container Environment Variable

Docker-compose environment variables

が、コuldは働かない。どの方向にしてください?

答えて

4

ファイルが解析されるときに、変数がComposeによって読み取られています。しかし、environmentを設定すると、ファイルの解析ではなく、コンテナに値が提供されます。

あなたはコンテナにこれらの変数を渡すためにしようとしている場合は、あなただけのComposeファイルで変数を使用しようとしている場合、あなたは、extar $

-Dconfig.home=$${CONF_HOME} -Dcomponent.name=LMS -Denv=$${APP_ENV} -Duser.dir=/tmp/ -DLMS_UUID=$${UUID 

を使用して、コマンドでそれらをエスケープする必要がありますこれらの変数を.envファイルに入れる必要があります。

詳細ドキュメントについては、https://docs.docker.com/compose/environment-variables/を参照してください。

+0

ブリリアント。ありがとう。私は.evnを使用しましたが、私はこれらの値を構成に入れたかったのですが、あなたの提案は私にとってそれでした。 –

関連する問題