在 DockerFile 中使用 Dokku 环境变量

Use Dokku Environment variables in DockerFile

我尝试在 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"

它returns空白。

如果我尝试设置 NR_APP inside DockerFile with:

ENV NR_APP AppName

它有效,但我不想在 DockerFile 中定义它,因为它是一个根据 develop/production 部署而变化的值,我也必须使用 license_key.

谢谢!

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

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

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