在DockerFile中使用Dokku环境variables

我打算在DockerFile中使用Dokku环境variables,但没有成功。

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= 

如果我尝试在构build期间仅回显ENV:

 RUN echo "$NR_APP" 

它返回空白。

如果我尝试在DockerFile 里面设置NR_APP:

 ENV NR_APP AppName 

它的工作原理,但我不想在DockerFile中定义它,因为它是一个基于开发/生产部署而改变的值,我也用license_key来做。

谢谢!

我从来没有使用Dokku,但只能在运行时在启动的容器中使用这些variables。

Docker故意不允许你将variables传递给Docker构build,这样构build在各个环境中都是可重复的。

我怀疑你可以写一个脚本来configuration应用程序在运行时使用给定的variables,然后启动它。 只需从Dockerfile中的ENTRYPOINT或CMD指令引用此脚本即可。