paint-brush
How To Use Environment Variables In Docker Compose Fileby@ifomin
6,485 reads
6,485 reads

How To Use Environment Variables In Docker Compose File

by Igor FominFebruary 26th, 2020
Read on Terminal Reader
Read this story w/o Javascript
tldt arrow

Too Long; Didn't Read

Environment variables work great with docker compose. If I want to use different credentials on different servers, environment variables can be used. Credentials to redis-commander will be admin/qwerty. The environment variables get picked up automatically when running " docker-compose up -d", there is no need to specify it somehow. If I create.env file next to my yml file and put the following inside, credentials to test/1234: REDIS_USER=test; Redis_PASSWORD=1234.

Company Mentioned

Mention Thumbnail
featured image - How To Use Environment Variables In Docker Compose File
Igor Fomin HackerNoon profile picture

If I want to use different credentials on different servers, environment variables work great with docker compose.

As an example I will use docker-compose.yml file from Docker + Redis + Redis Commander article.

Source files can be found here: https://github.com/ikknd/docker-study in folder recipe-07

Notes:

  • HTTP_USER=${REDIS_USER:-admin} - here I use ${REDIS_USER:-admin} syntax, which means - use REDIS_USER variable from .env file, in case it is missing, use "admin" instead.
  • .env file gets picked up automatically when running "docker-compose up -d", there is no need to specify it somehow

If I now try this docker-compose.yml file without .env file, credentials to redis-commander will be admin/qwerty.

If I create .env file next to my yml file and put the following inside, credentials to redis-commander will be test/1234:

REDIS_USER=test 

REDIS_PASSWORD=1234