我想在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来实现。
谢谢!
答案 0 :(得分:1)
我从未使用过Dokku,但您只能在启动的容器中在运行时使用这些变量。
Docker故意不允许您将变量传递给docker build,因此构建可以跨环境重现。
我怀疑您可以编写一个脚本,使用给定的变量在运行时配置应用程序,然后启动它。只需从Dockerfile中的ENTRYPOINT或CMD指令引用此脚本。