Declare default environment variables in file
Compose supports declaring default environment variables in an environment file
.env placed in the project directory. Docker Compose versions earlier than
.env file from the current working directory, where the command is executed, or from the
project directory if this is explicitly set with the
--project-directory option. This
inconsistency has been addressed starting with
+v1.28 by limiting the default
.env file path
to the project directory. You can use the
--env-file commandline option to override the default
.env and specify the path to a custom environment file.
The project directory is specified by the order of precedence:
- Folder of the first
- Current directory
The following syntax rules apply to the
- Compose expects each line in an
envfile to be in
- Lines beginning with
#are processed as comments and ignored.
- Blank lines are ignored.
- There is no special handling of quotation marks. This means that they are part of the VAL.
Compose file and CLI variables
- Values present in the environment at runtime always override those defined inside the
.envfile. Similarly, values passed via command-line arguments take precedence as well.
- Environment variables defined in the
.envfile are not automatically visible inside containers. To set container-applicable environment variables, follow the guidelines in the topic Environment variables in Compose, which describes how to pass shell environment variables through to containers, define environment variables in Compose files, and more.
More Compose documentation
- User guide
- Installing Compose
- Getting Started
- Command line reference
- Compose file reference
- Sample apps with Compose