Dockerfile重写ENVvariables

我有一个Dockerfile,我想使用默认值configurationAPI。

来自socialengine / nginx-spa

ENV API_URL localhost:6007

所以当我运行这个图像时,我可以用下面的东西覆盖localhost:6007:

docker运行-e API_URL = production.com:6007 ui

这不起作用,我无法find如何做到这一点的明确解释。

有什么build议?

你所描述的应该工作得很好。 鉴于:

$ 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=varvalue docker run命令行中传递-e VARNAME=varvalue将覆盖Dockerfile中的默认设置。

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

更新

这里是完整的例子,logging您的观看乐趣:

https://asciinema.org/a/a5a2n3exlyh4jkii4k0ivvqmd