How to Set a Default Environment Variable in docker-compose.yml
In Docker Compose, we can access environment variables using this notation: ${SECRET_KEY}
.
For instance, our compose file might look something like this:
version: '3.1'
services:
load_balancer:
image: nginx:latest
environment:
SECRET_KEY: "${SECRET_KEY}"
Our docker-compose.yml
will obtain variable values from the shell environment in which docker-compose
is run. In this scenario, SECRET_KEY
is likely set in our .env
.
But, what if SECRET_KEY
isn’t defined and we’d like a fallback value to be used as a default?
Shell Parameter Expansion
This notation is called shell parameter expansion.
The expression ${SECRET_KEY}
will attempt to access SECRET_KEY
as a Bash shell variable.
We can use the following syntax to provide a default value.
${SECRET_KEY:-defaultValue}
If SECRET_KEY
is not set or is null
, defaultValue
will be used.
version: '3.1'
services:
load_balancer:
image: nginx:latest
environment:
SECRET_KEY: "${SECRET_KEY:-default_secret_key}"