Dockerfile覆盖ENV变量

我有一个Dockerfile,我想使用默认值来配置API。

来自socialengine / nginx-spa

ENV API_URL本地主机:6007

因此,当我运行此映像时,我将能够使用以下内容覆盖localhost:6007:

码头工人运行-e API_URL = production.com:6007 ui

这是行不通的,我找不到如何执行此操作的清晰说明。

有什么建议吗?

回答:

您所描述的应该可以正常工作。鉴于:

$ cat Dockerfile

FROM socialengine/nginx-spa

ENV API_URL localhost:6007

$ docker build -t ui .

[...]

考虑一下:

$ docker run -it --rm ui env | grep API_URL

API_URL=localhost:6007

相比:

$ docker run -it --rm -e API_URL='production:6007' ui env | grep API_URL

API_URL=production:6007

-e VARNAME=varvaluedocker run命令行上传递a 将覆盖Dockerfile中的默认设置。

如果您看到不同的行为,请更新您的问题以准确显示您正在运行的命令以及相关的输出。

这是完整的示例,为您的观看乐趣而记录:

https://asciinema.org/a/a5a2n3exlyh4jkii4k0ivvqmd

以上是 Dockerfile覆盖ENV变量 的全部内容, 来源链接: utcz.com/qa/421836.html

回到顶部