Docker Environment Variables

Docker Image Built-time Variables

To set build time variables - use the Dockerfile, these settings are baked into the image.

Args

Args are to help you not repeat yourself in a Dockerfile

ARG some_variable_name

That tells docker that it should expect some_variable_name to be passed in at build time. You do that with:

docker build --build-arg some_variable_name=a_value

ARG’s are not available to running containers

Envs

ENV can be used to define default environment variables

ENV foo /bar

This environment variable is available to containers

You can set a dynamic build time variable, that will be available to the container with:

ARG some_variable_name
ENV env_var_name=$some_variable_name

You can override ENV variables when starting containers with:

docker run -e "env_var_name=another_value" alpine env

Docker Compose

Environment stuff only applies to containers, not images

You can also specify a file to read values from

Sources