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

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

谢谢!

4

1 回答 1

1

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

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

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

于 2015-06-12T13:17:05.627 回答