【问题标题】:Use Dokku Environment variables in DockerFile在 DockerFile 中使用 Dokku 环境变量
【发布时间】:2015-06-12 11:26:17
【问题描述】:

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

返回空白。

如果我尝试将 NR_APP inside DockerFile 设置为:

ENV NR_APP AppName

它有效,但我不想在 DockerFile 中定义它,因为它的值会根据开发/生产部署而变化,我也必须使用 license_key 来实现。

谢谢!

【问题讨论】:

    标签: docker environment-variables dockerfile dokku


    【解决方案1】:

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

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

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

    【讨论】:

    • 如此处所写:progrium.viewdocs.io/dokku/configuration-management:“变量在运行时和应用程序构建/编译步骤期间都可用”但它似乎不起作用。我会在底部尝试一个脚本。谢谢!
    • 我不知道 Dokku 是如何工作的,但将变量放入 Dockerfile 的唯一方法是从模板构建 Dockerfile。
    猜你喜欢
    • 1970-01-01
    • 2019-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多