在DockerFile中使用Dokku Environment变量

时间:2015-06-12 11:26:17

标签: docker environment-variables dockerfile dokku

我想在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

它可以工作,但我不想在DockerFile中定义它,因为它的值是根据开发/生产部署而改变的,我也可以使用license_key来实现。

谢谢!

1 个答案:

答案 0 :(得分:1)

我从未使用过Dokku,但您只能在启动的容器中在运行时使用这些变量。

Docker故意不允许您将变量传递给docker build,因此构建可以跨环境重现。

我怀疑您可以编写一个脚本,使用给定的变量在运行时配置应用程序,然后启动它。只需从Dockerfile中的ENTRYPOINT或CMD指令引用此脚本。