Compose CLI environment variables
Estimated reading time: 4 minutes
Several environment variables are available for you to configure the Docker Compose command-line behaviour.
Variables starting with DOCKER_
are the same as those used to configure the
Docker command-line client. If you’re using docker-machine
, then the eval "$(docker-machine env my-docker-vm)"
command should set them to their correct values. (In this example, my-docker-vm
is the name of a machine you created.)
Note: Some of these variables can also be provided using an environment file.
COMPOSE_PROJECT_NAME
Sets the project name. This value is prepended along with the service name to
the container on start up. For example, if your project name is myapp
and it
includes two services db
and web
, then Compose starts containers named
myapp_db_1
and myapp_web_1
respectively.
Setting this is optional. If you do not set this, the COMPOSE_PROJECT_NAME
defaults to the basename
of the project directory. See also the -p
command-line option.
COMPOSE_FILE
Specify the path to a Compose file. If not provided, Compose looks for a file named
docker-compose.yml
in the current directory and then each parent directory in
succession until a file by that name is found.
This variable supports multiple Compose files separated by a path separator (on
Linux and macOS the path separator is :
, on Windows it is ;
). For example:
COMPOSE_FILE=docker-compose.yml:docker-compose.prod.yml
. The path separator
can also be customized using COMPOSE_PATH_SEPARATOR
.
See also the -f
command-line option.
COMPOSE_PROFILES
Specify one or multiple active profiles to enable. Calling docker-compose up
with COMPOSE_PROFILES=frontend
will start the services with the profile
frontend
and services without specified profiles.
You can specify a list of profiles separated with a comma:
COMPOSE_PROFILES=frontend,debug
will enable the profiles frontend
and
debug
.
See also Using profiles with Compose and the --profile
command-line option.
COMPOSE_API_VERSION
The Docker API only supports requests from clients which report a specific
version. If you receive a client and server don't have same version
error using
docker-compose
, you can workaround this error by setting this environment
variable. Set the version value to match the server version.
Setting this variable is intended as a workaround for situations where you need to run temporarily with a mismatch between the client and server version. For example, if you can upgrade the client but need to wait to upgrade the server.
Running with this variable set and a known mismatch does prevent some Docker features from working properly. The exact features that fail would depend on the Docker client and server versions. For this reason, running with this variable set is only intended as a workaround and it is not officially supported.
If you run into problems running with this set, resolve the mismatch through upgrade and remove this setting to see if your problems resolve before notifying support.
DOCKER_HOST
Sets the URL of the docker
daemon. As with the Docker client, defaults to unix:///var/run/docker.sock
.
DOCKER_TLS_VERIFY
When set to anything other than an empty string, enables TLS communication with
the docker
daemon.
DOCKER_CERT_PATH
Configures the path to the ca.pem
, cert.pem
, and key.pem
files used for TLS verification. Defaults to ~/.docker
.
COMPOSE_HTTP_TIMEOUT
Configures the time (in seconds) a request to the Docker daemon is allowed to hang before Compose considers it failed. Defaults to 60 seconds.
COMPOSE_TLS_VERSION
Configure which TLS version is used for TLS communication with the docker
daemon. Defaults to TLSv1
.
Supported values are: TLSv1
, TLSv1_1
, TLSv1_2
.
COMPOSE_CONVERT_WINDOWS_PATHS
Enable path conversion from Windows-style to Unix-style in volume definitions.
Users of Docker Machine on Windows should always set this. Defaults to 0
.
Supported values: true
or 1
to enable, false
or 0
to disable.
COMPOSE_PATH_SEPARATOR
If set, the value of the COMPOSE_FILE
environment variable is separated
using this character as path separator.
COMPOSE_FORCE_WINDOWS_HOST
If set, volume declarations using the short syntax
are parsed assuming the host path is a Windows path, even if Compose is
running on a UNIX-based system.
Supported values: true
or 1
to enable, false
or 0
to disable.
COMPOSE_IGNORE_ORPHANS
If set, Compose doesn’t try to detect orphaned containers for the project.
Supported values: true
or 1
to enable, false
or 0
to disable.
COMPOSE_PARALLEL_LIMIT
Sets a limit for the number of operations Compose can execute in parallel. The
default value is 64
, and may not be set lower than 2
.
COMPOSE_INTERACTIVE_NO_CLI
If set, Compose doesn’t attempt to use the Docker CLI for interactive run
and exec
operations. This option is not available on Windows where the CLI
is required for the aforementioned operations.
Supported: true
or 1
to enable, false
or 0
to disable.
COMPOSE_DOCKER_CLI_BUILD
Configure whether to use the Compose python client for building images or the
native docker cli. By default, Compose uses the docker
CLI to perform builds,
which allows you to use BuildKit
to perform builds.
Set COMPOSE_DOCKER_CLI_BUILD=0
to disable native builds, and to use the built-in
python client.