Dockerfile Overriding ENV variable
bash, docker, environment-variables
Solution
What you have described should work just fine. Given:
$ cat Dockerfile
FROM socialengine/nginx-spa
ENV API_URL localhost:6007
$ docker build -t ui .
[...]
Consider this:
$ docker run -it --rm ui env | grep API_URL
API_URL=localhost:6007
Compared to:
$ docker run -it --rm -e API_URL='production:6007' ui env | grep API_URL
API_URL=production:6007
Passing a `-e VARNAME=varvalue` on the `docker run` command line will override a default set in your Dockerfile.
If you are seeing different behavior, please update your question to show exactly the command you are running and the associated output.
Problem
I have a Dockerfile and I'd like to make the API configurable with a default value. FROM socialengine/nginx-spa ENV API_URL localhost:6007 So when I run this image I'd to be able to override the localhost:6007 with something like below: docker run -e API_URL=production.com:6007 ui This doesn't work and I can't find a clear explanation of how to do this. Any advice?