Reputation: 6551
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?
Upvotes: 40
Views: 51097
Reputation: 312500
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.
Upvotes: 61