2015-06-12 217 views
1

我想在DockerFile中使用Dokku環境變量,但沒有成功。在DockerFile中使用Dokku環境變量

Dokku信封被設定爲:

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" 

它返回空白。

,如果我嘗試設置NR_APP DockerFile:

ENV NR_APP AppName 

它的工作原理,但我不想把它定義裏面DockerFile因爲它是改變基礎上進行開發/生產部署的值,我也必須用license_key來做。

謝謝!

回答

0

我從來沒有使用過Dokku,但你只能在運行時在啓動的容器中使用這些變量。

Docker故意不允許您將變量傳遞給Docker構建,以便構建在各個環境中都可重現。

我懷疑你可以寫一個腳本來配置應用程序在運行時使用給定的變量,然後啓動它。只需從Dockerfile中的ENTRYPOINT或CMD指令引用此腳本即可。

+0

正如寫在這裏:http://progrium.viewdocs.io/dokku/configuration-management:「變量在運行時和應用程序構建/編譯步驟都可用」 但它似乎不起作用。我會嘗試底部的腳本。謝謝! –

+0

我不知道Dokku是如何工作的,但將變量放入Dockerfile的唯一方法是從模板構建Dockerfile。 –