1

DockerFile で Dokku 環境変数を使用しようとしていますが、成功しません。

Dokku Env は次のように設定されています。

dokku config:set www NR_APP=AppName

DockerFile では、この NR_APP を次のファイルに入れたいと思います。

RUN sh -c 'echo "newrelic.appname=\"$NR_APP\"" >> /etc/php5/apache2/conf.d/newrelic.ini'

しかし、それは機能しません。ファイルの結果は次のとおりです。

newrelic.appname=

ビルド中に ENV のみをエコーし​​ようとすると、次のようになります。

RUN echo "$NR_APP"

空白に戻ります。

DockerFile内でNR_APP を設定しようとすると、次のようになります。

ENV NR_APP AppName

それは機能しますが、開発/運用展開に基づいて変化する値であり、license_key でも行う必要があるため、DockerFile 内で定義したくありません。

ありがとう!

4

1 に答える 1

1

私は Dokku を使用したことはありませんが、これらの変数は、起動されたコンテナーで実行時にのみ使用できます。

Docker は意図的に変数を docker build に渡すことを許可していないため、環境間でビルドを再現できます。

指定された変数を使用して実行時にアプリケーションを構成し、起動するスクリプトを作成するだけでよいと思います。Dockerfile の ENTRYPOINT または CMD 命令からこのスクリプトを参照するだけです。

于 2015-06-12T13:17:05.627 に答える