NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #4291 most downloaded on PyPI
Multi-container orchestration for Docker
Last release 5 years ago
no release in 18 months
Release timing varies
gaps range from 8 days to 2 months
Nearly every release is documented
notes for 60 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
12 years old
142 releases · first in 2015
This is a release candidate for version 1.5.0 of Compose.
This is a release candidate for version 1.5.0 of Compose.
Note that Compose 1.5.0 requires Docker 1.8.0 or later.
To try it out, run the following commands:
curl -L https://github.com/docker/compose/releases/download/1.5.0rc1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
Or pip install -U docker-compose==1.5.0rc1 if you prefer pip.
Here's what's new:
Major Features
up now waits for all services to exit before shutting down--x-networking flagNew Features
volumes_from now supports a mode option allowing for read-only
volumes_from. or /) will now be
treated as a named volume. Previously this was a warning.--pull flag added to build--ignore-pull-failures flag added to pullipc field added to the compose filerun can now be named with the --name flagimage field now supports image digests (in addition to ids and tags)ports now supports ranges of ports--publish flag added to runpause and unpausefile key in
extendsBug Fixes
log_driversbuild when running against swarm~ is no longer expanded on the host when included as part of a container
volume pathThanks @aanand, @mnowster, @moxiegirl, @mrfuxi, @shin-, @bfirsh, @albers @funkyfuture, @uvgroovy, @predakanga, @charleswhchan, @ggtools, and everyone else who contributed to this release!
One column per quarter.
Firstly, note that Compose 1.4.2 requires Docker 1.7.0 or later.
Firstly, note that Compose 1.4.2 requires Docker 1.7.0 or later.
Secondly, if you're a Mac user, the Docker Toolbox will install Compose 1.4.2 for you, alongside the latest versions of the Docker Engine, Machine and Kitematic.
Otherwise, you can use the usual commands to install/upgrade. Either download the binary:
curl -L https://github.com/docker/compose/releases/download/1.4.2/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
Or install the PyPi package:
pip install -U docker-compose==1.4.2
This release fixes a regression in the 1.4.1 release that would cause docker-compose up without the -d option to exit immediately.
Firstly, note that Compose 1.4.1 requires Docker 1.7.0 or later.
Firstly, note that Compose 1.4.1 requires Docker 1.7.0 or later.
Secondly, if you're a Mac user, the Docker Toolbox will install Compose 1.4.1 for you, alongside the latest versions of the Docker Engine, Machine and Kitematic.
Otherwise, you can use the usual commands to install/upgrade. Either download the binary:
curl -L https://github.com/docker/compose/releases/download/1.4.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
Or install the PyPi package:
pip install -U docker-compose==1.4.1
The following issues were fixed in this release:
links, volumes_from, and
net) were not properly triggering a container recreate as part of
docker-compose up.docker-compose up <service> was showing logs for all services instead of
just the specified services.service_number instead of their custom container name.The --allow-insecure-ssl flag, which was previously used to work around this issue, has been deprecated and now has no effect.
Firstly, note that Compose 1.4.0 requires Docker 1.7.1 or later.
Secondly, if you're a Mac user, the Docker Toolbox will install Compose 1.4.0 for you, alongside the latest versions of the Docker Engine, Machine and Kitematic.
Otherwise, you can use the usual commands to install/upgrade. Either download the binary:
curl -L https://github.com/docker/compose/releases/download/1.4.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
Or install the PyPi package:
pip install -U docker-compose==1.4.0
Here's what's new:
docker-compose up now only recreates containers for services whose configuration has changed since they were created. This should result in a dramatic speed-up for many applications.The experimental --x-smart-recreate flag which introduced this feature in Compose 1.3.0 has been removed, and a --force-recreate flag has been added for when you want to recreate everything.
scale, stop, kill and rm - now perform actions on multiple containers in parallel, rather than in sequence, which will run much faster on larger applications.container_name. Because Docker container names must be unique, this means you can't scale the service beyond one container.file option when using extends - it will default to the current file.- as the filename. This makes it easier to generate configuration dynamically:$ echo 'redis: {"image": "redis"}' | docker-compose --file - up
docker-compose version command which prints extended information about Compose's bundled dependencies.docker-compose.yml now supports log_opt as well as log_driver, allowing you to pass extra configuration to a service's logging driver.docker-compose.yml now supports memswap_limit, similar to docker run --memory-swap.volumes option, you can now pass in any mode supported by the daemon, not just :ro or :rw. For example, SELinux users can pass :z or :Z.volume_driver option in docker-compose.yml, much like docker run --volume-driver.--allow-insecure-ssl flag, which was previously used to work around this issue, has been deprecated and now has no effect.docker-compose build would fail if the build depended on a private Hub image or an image from a private registry.docker-compose.yml with a trailing slash.Thanks @mnowster, @dnephin, @ekristen, @funkyfuture, @jeffk and @lukemarsden!
This is a release candidate for version 1.4.0 of Compose. To try it out, run the following commands:
This is a release candidate for version 1.4.0 of Compose. To try it out, run the following commands:
curl -L https://github.com/docker/compose/releases/download/1.4.0rc3/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
Or pip install -U docker-compose==1.4.0rc3 if you prefer Pip.
On top of the changes in RC1 and RC2, this release contains the following changes:
volume_driver option in docker-compose.yml, much like docker run --volume-driver.docker-compose.yml with a trailing slash.docker-compose build would fail if the build depended on a private Hub image or an image from a private registry.Here are the most important changes in 1.4.0:
docker-compose up now only recreates containers for services whose configuration has changed since they were created. This should result in a dramatic speed-up for many applications.The experimental --x-smart-recreate flag which introduced this feature in Compose 1.3.0 has been removed, and a --force-recreate flag has been added for when you want to recreate everything.
scale, stop, kill and rm - now perform actions on multiple containers in parallel, rather than in sequence, which will run much faster on larger applications.container_name. Because Docker container names must be unique, this means you can't scale the service beyond one container.file option when using extends - it will default to the current file.- as the filename. This makes it easier to generate configuration dynamically:$ echo 'redis: {"image": "redis"}' | docker-compose --file - up
docker-compose version command which prints extended information about Compose's bundled dependencies.docker-compose.yml now supports log_opt as well as log_driver, allowing you to pass extra configuration to a service's logging driver.docker-compose.yml now supports memswap_limit, similar to docker run --memory-swap.volumes option, you can now pass in any mode supported by the daemon, not just :ro or :rw. For example, SELinux users can pass :z or :Z.The --allow-insecure-ssl flag, which was previously used to work around this issue, has been deprecated and now has no effect.
This is a release candidate for version 1.4.0 of Compose. To try it out, run the following commands:
curl -L https://github.com/docker/compose/releases/download/1.4.0rc2/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
Or pip install -U docker-compose==1.4.0rc2 if you prefer Pip.
On top of the changes in RC1, the following bugs have been fixed:
--allow-insecure-ssl flag, which was previously used to work around this issue, has been deprecated and now has no effect.container_name would cause docker-compose run to fail for that service.Here are the most important changes in 1.4.0:
docker-compose up now only recreates containers for services whose configuration has changed since they were created. This should result in a dramatic speed-up for many applications.The experimental --x-smart-recreate flag which introduced this feature in Compose 1.3.0 has been removed, and a --force-recreate flag has been added for when you want to recreate everything.
scale, stop, kill and rm - now perform actions on multiple containers in parallel, rather than in sequence, which will run much faster on larger applications.container_name. Because Docker container names must be unique, this means you can't scale the service beyond one container.file option when using extends - it will default to the current file.- as the filename. This makes it easier to generate configuration dynamically:$ echo 'redis: {"image": "redis"}' | docker-compose --file - up
docker-compose version command which prints extended information about Compose's bundled dependencies.docker-compose.yml now supports log_opt as well as log_driver, allowing you to pass extra configuration to a service's logging driver.docker-compose.yml now supports memswap_limit, similar to docker run --memory-swap.volumes option, you can now pass in any mode supported by the daemon, not just :ro or :rw. For example, SELinux users can pass :z or :Z.Thanks @dnephin, @ekristen, @funkyfuture, @jeffk and @mnowster!
This is a release candidate for version 1.4.0 of Compose. To try it out, run the following commands:
This is a release candidate for version 1.4.0 of Compose. To try it out, run the following commands:
curl -L https://github.com/docker/compose/releases/download/1.4.0rc1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
Or pip install -U docker-compose==1.4.0rc1 if you prefer Pip.
Here are the most important changes in 1.4.0:
docker-compose up now only recreates containers for services whose configuration has changed since they were created. This should result in a dramatic speed-up for many applications.The experimental --x-smart-recreate flag which introduced this feature in Compose 1.3.0 has been removed, and a --force-recreate flag has been added for when you want to recreate everything.
scale, stop, kill and rm - now perform actions on multiple containers in parallel, rather than in sequence, which will run much faster on larger applications.container_name. Because Docker container names must be unique, this means you can't scale the service beyond one container.file option when using extends - it will default to the current file.- as the filename. This makes it easier to generate configuration dynamically:$ echo 'redis: {"image": "redis"}' | docker-compose --file - up
docker-compose version command which prints extended information about Compose's bundled dependencies.docker-compose.yml now supports log_opt as well as log_driver, allowing you to pass extra configuration to a service's logging driver.docker-compose.yml now supports memswap_limit, similar to docker run --memory-swap.volumes option, you can now pass in any mode supported by the daemon, not just :ro or :rw. For example, SELinux users can pass :z or :Z.Thanks @dnephin, @ekristen, @funkyfuture, @jeffk and @mnowster!
If you're upgrading from Compose 1.2.0 or earlier, this release contains breaking changes - be sure to read the 1.3.0 release notes.
If you're upgrading from Compose 1.2.0 or earlier, this release contains breaking changes - be sure to read the 1.3.0 release notes.
To install Compose 1.3.3, run the following commands:
curl -L https://github.com/docker/compose/releases/download/1.3.3/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
Or pip install -U docker-compose==1.3.3 if you prefer Pip.
Two regressions have been fixed:
If you're upgrading from Compose 1.2.0 or earlier, this release contains breaking changes - be sure to read the 1.3.0 release notes.
If you're upgrading from Compose 1.2.0 or earlier, this release contains breaking changes - be sure to read the 1.3.0 release notes.
To install Compose 1.3.2, run the following commands:
curl -L https://github.com/docker/compose/releases/download/1.3.2/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
Or pip install -U docker-compose==1.3.2 if you prefer Pip.
The following bugs have been fixed:
docker-compose run on an older version of Compose, docker-compose run would fail with a name collision. Compose now shows an error if you have leftover containers of this type lying around, and tells you how to remove them.~/docker/config.json, and authentication against private registries would therefore fail.docker-compose up would be truncated.docker-compose up --x-smart-recreate would sometimes fail when an image tag was updated.docker-compose up would sometimes create two containers with the same numeric suffix.docker-compose rm and docker-compose ps would sometimes list services that aren't part of the current project (though no containers were erroneously removed).docker-compose commands would not show an error if invalid service names were passed in.Thanks @dano, @josephpage, @kevinsimper, @lieryan, @phemmer, @soulrebel and @sschepens!
If you're upgrading from Compose 1.2.0 or earlier, this release contains breaking changes - be sure to read the 1.3.0 release notes.
If you're upgrading from Compose 1.2.0 or earlier, this release contains breaking changes - be sure to read the 1.3.0 release notes.
To install Compose 1.3.1, run the following commands:
curl -L https://github.com/docker/compose/releases/download/1.3.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
Or pip install -U docker-compose==1.3.1 if you prefer Pip.
The following bugs have been fixed:
docker-compose build would always attempt to pull the base image before building.docker-compose help migrate-to-labels failed with an error.This release contains breaking changes, and you will need to either remove or migrate your existing containers before running your app - see the upgra…
To install Compose 1.3.0, run the following commands:
curl -L https://github.com/docker/compose/releases/download/1.3.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
Or pip install -U docker-compose if you prefer Pip.
Optionally, you can also install command completion for bash or zsh.
Firstly, two important notes:
We've done a lot of work in this release to remove hacks and make Compose more stable:
docker-compose up less complex and more resilient to failure.There are some new features:
docker-compose up has an experimental new behaviour: it will only recreate containers for services whose configuration has changed in docker-compose.yml. This will eventually become the default, but for now you can take it for a spin:
$ docker-compose up --x-smart-recreate
When invoked in a subdirectory of a project, docker-compose will now climb up through parent directories until it finds a docker-compose.yml.
Several new configuration keys have been added to docker-compose.yml:
dockerfile, like docker build --file, lets you specify an alternate Dockerfile to use with build.labels, like docker run --labels, lets you add custom metadata to containers.extra_hosts, like docker run --add-host, lets you add entries to a container's /etc/hosts file.pid: host, like docker run --pid=host, lets you reuse the same PID namespace as the host machine.cpuset, like docker run --cpuset-cpus, lets you specify which CPUs to allow execution in.read_only, like docker run --read-only, lets you mount a container's filesystem as read-only.security_opt, like docker run --security-opt, lets you specify security options.log_driver, like docker run --log-driver, lets you specify a log driver.Many bugs have been fixed, including the following:
docker-compose run was sometimes truncated, especially when running under Jenkins.docker-compose.yml.docker-compose run --rm would fail to remove the container if the service had a restart policy in place.docker-compose scale would refuse to scale a service beyond 1 container if it exposed a specific port number on the host.Thanks @ahromis, @albers, @aleksandr-vin, @antoineco, @ccverak, @chernjie, @dnephin, @edmorley, @fordhurley, @josephpage, @KyleJamesWalker, @lsowen, @mchasal, @noironetworks, @sdake, @sdurrheimer, @sherter, @stephenlawrence, @thaJeztah, @thieman, @turtlemonvh, @twhiteman, @vdemeester, @xuxinkun and @zwily!
This release contains breaking changes, and you will need to either remove or migrate your existing containers before running your app - see the upgra…
This is a release candidate for version 1.3.0 of Docker Compose. To try it out, run the following commands:
curl -L https://github.com/docker/compose/releases/download/1.3.0rc3/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
Or pip install -U docker-compose==1.3.0rc3 if you prefer Pip.
This release contains breaking changes, and you will need to either remove or migrate your existing containers before running your app - see the upgrading section of the install docs for details.
There are lots of new things in 1.3 - have a look at the RC1 changelog for details.
On top of RC2, several bugs have been fixed:
docker-compose scale would refuse to scale a service beyond 1 container if it exposed a specific port number on the host.This release contains breaking changes, and you will need to either remove or migrate your existing containers before running your app - see the upgra…
This is a release candidate for version 1.3.0 of Docker Compose. To try it out, run the following commands:
curl -L https://github.com/docker/compose/releases/download/1.3.0rc2/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
Or pip install -U docker-compose==1.3.0rc2 if you prefer Pip.
This release contains breaking changes, and you will need to either remove or migrate your existing containers before running your app - see the upgrading section of the install docs for details.
There are lots of new things in 1.3 - have a look at the RC1 changelog for details.
In this RC, several bugs have been fixed:
docker-compose run --rm was not removing the container when finished.docker-compose up was printing duplicate log messages when recreating containers.This release contains breaking changes, and you will need to either remove or migrate your existing containers before running your app - see the upgra…
This is a release candidate for version 1.3.0 of Docker Compose. To try it out, run the following commands:
curl -L https://github.com/docker/compose/releases/download/1.3.0rc1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
Or pip install -U docker-compose==1.3.0rc1 if you prefer Pip.
Now, two important notes:
We've done a lot of work in this release to remove hacks and make Compose more stable:
docker-compose up less complex and more resilient to failure.There are some new features:
docker-compose up has an experimental new behaviour: it will only recreate containers for services whose configuration has changed in docker-compose.yml. This will eventually become the default, but for now you can take it for a spin:
$ docker-compose up --x-smart-recreate
When invoked in a subdirectory of a project, docker-compose will now climb up through parent directories until it finds a docker-compose.yml.
Several new configuration keys have been added to docker-compose.yml:
dockerfile, like docker build --file, lets you specify an alternate Dockerfile to use with build.labels, like docker run --labels, lets you add custom metadata to containers.extra_hosts, like docker run --add-host, lets you add entries to a container's /etc/hosts file.pid: host, like docker run --pid=host, lets you reuse the same PID namespace as the host machine.cpuset, like docker run --cpuset-cpus, lets you specify which CPUs to allow execution in.read_only, like docker run --read-only, lets you mount a container's filesystem as read-only.security_opt, like docker run --security-opt, lets you specify security options.log_driver, like docker run --log-driver, lets you specify a log driver.Many bugs have been fixed, including the following:
docker-compose run was sometimes truncated, especially when running under Jenkins.docker-compose.yml.docker-compose run --rm would fail to remove the container if the service had a restart policy in place.Thanks @ahromis, @albers, @aleksandr-vin, @antoineco, @ccverak, @chernjie, @dnephin, @josephpage, @KyleJamesWalker, @lsowen, @mchasal, @sdake, @sherter, @stephenlawrence, @turtlemonvh, @vdemeester, @xuxinkun and @zwily!
…file in another directory, this is a breaking change.
To install Compose 1.2.0, run the following commands:
curl -L https://github.com/docker/compose/releases/download/1.2.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
Optionally, you can also install command completion for the bash shell.
Here's what's new:
docker-compose.yml now supports an extends option, which enables a service to inherit configuration from another service in another configuration file. This is really good for sharing common configuration between apps, or for configuring the same app for different environments. Here's the documentation.build.docker-compose up when using Compose with a Swarm cluster now work reliably.build, filenames passed to env_file and volume host paths passed to volumes are now treated as relative to the directory of the configuration file, not the directory that docker-compose is being run in. In the majority of cases, those are the same, but if you use the -f|--file argument to specify a configuration file in another directory, this is a breaking change.net: container:<service>.volumes_from and net: container:<service> entries are taken into account when resolving dependencies, so docker-compose up <service> will correctly start all dependencies of <service>.docker-compose run now accepts a --user argument to specify a user to run the command as, just like docker run.up, stop and restart commands now accept a --timeout (or -t) argument to specify how long to wait when attempting to gracefully stop containers, just like docker stop.docker-compose rm now accepts -f as a shorthand for --force, just like docker rm.Thanks, @abesto, @albers, @alunduil, @dnephin, @funkyfuture, @gilclark, @IanVS, @KingsleyKelly, @knutwalker, @thaJeztah and @vmalloc!
…file in another directory, this is a breaking change.
This is a release candidate for Compose 1.2.0. To try it out, run the following commands:
curl -L https://github.com/docker/compose/releases/download/1.2.0rc4/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
Optionally, you can also install command completion for the bash shell.
On top of the changes listed below for RC1-RC3, the following bugs have been fixed:
volumes host paths.Here are the changes for RC3:
extends, image and build could come into conflict, resulting in an error, as it makes no sense to have both defined. Each now overwrites the other: if a service with image defined is extended and build is added, the image entry will be removed.extends, if both services defined a multi-value option such as ports or dns, the original value would be completely discarded. They are now concatenated instead.build, it is treated as relative to the directory of the configuration file, not the directory that docker-compose is being run in. In the majority of cases, those are the same, but if you use the -f|--file argument to specify a configuration file in another directory, this is a breaking change.Here are the changes for RC2:
Here are the changes for RC1:
docker-compose.yml now supports an extends option, which enables a service to inherit configuration from another service in another configuration file. This is really good for sharing common configuration between apps, or for configuring the same app for different environments. Here's the documentation.build.docker-compose up when using Compose with a Swarm cluster now work reliably.env_file and volume host paths in volumes are now treated as relative to the directory of the configuration file, not the directory that docker-compose is being run in. In the majority of cases, those are the same, but if you use the -f|--file argument to specify a configuration file in another directory, this is a breaking change.net: container:<service>.volumes_from and net: container:<service> entries are taken into account when resolving dependencies, so docker-compose up <service> will correctly start all dependencies of <service>.docker-compose run now accepts a --user argument to specify a user to run the command as, just like docker run.up, stop and restart commands now accept a --timeout (or -t) argument to specify how long to wait when attempting to gracefully stop containers, just like docker stop.docker-compose rm now accepts -f as a shorthand for --force, just like docker rm.Thanks, @abesto, @albers, @alunduil, @dnephin, @funkyfuture, @gilclark, @IanVS, @KingsleyKelly, @knutwalker, @moysesb, @thaJeztah and @vmalloc!
…file in another directory, this is a breaking change.
This is a release candidate for Compose 1.2.0. To try it out, run the following commands:
curl -L https://github.com/docker/compose/releases/download/1.2.0rc3/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
Optionally, you can also install command completion for the bash shell.
On top of the changes listed below for RC1 and RC2, the following bugs have been fixed:
extends, image and build could come into conflict, resulting in an error, as it makes no sense to have both defined. Each now overwrites the other: if a service with image defined is extended and build is added, the image entry will be removed.extends, if both services defined a multi-value option such as ports or dns, the original value would be completely discarded. They are now concatenated instead.build, it is treated as relative to the directory of the configuration file, not the directory that docker-compose is being run in. In the majority of cases, those are the same, but if you use the -f|--file argument to specify a configuration file in another directory, this is a breaking change.Here are the changes for RC2:
Here are the changes for RC1:
docker-compose.yml now supports an extends option, which enables a service to inherit configuration from another service in another configuration file. This is really good for sharing common configuration between apps, or for configuring the same app for different environments. Here's the documentation.build.docker-compose up when using Compose with a Swarm cluster now work reliably.env_file and volume host paths in volumes are now treated as relative to the directory of the configuration file, not the directory that docker-compose is being run in. In the majority of cases, those are the same, but if you use the -f|--file argument to specify a configuration file in another directory, this is a breaking change.net: container:<service>.volumes_from and net: container:<service> entries are taken into account when resolving dependencies, so docker-compose up <service> will correctly start all dependencies of <service>.docker-compose run now accepts a --user argument to specify a user to run the command as, just like docker run.up, stop and restart commands now accept a --timeout (or -t) argument to specify how long to wait when attempting to gracefully stop containers, just like docker stop.docker-compose rm now accepts -f as a shorthand for --force, just like docker rm.Thanks, @abesto, @albers, @alunduil, @dnephin, @funkyfuture, @gilclark, @IanVS, @KingsleyKelly, @knutwalker, @moysesb, @thaJeztah and @vmalloc!
…file in another directory, this is a breaking change.
This is a release candidate for Compose 1.2.0. To try it out, run the following commands:
curl -L https://github.com/docker/compose/releases/download/1.2.0rc2/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
Optionally, you can also install command completion for the bash shell.
Here are the changes for RC1:
docker-compose.yml now supports an extends option, which enables a service to inherit configuration from another service in another configuration file. This is really good for sharing common configuration between apps, or for configuring the same app for different environments. Here's the documentation.build.docker-compose up when using Compose with a Swarm cluster now work reliably.env_file and volume host paths in volumes are now treated as relative to the directory of the configuration file, not the directory that docker-compose is being run in. In the majority of cases, those are the same, but if you use the -f|--file argument to specify a configuration file in another directory, this is a breaking change.net: container:<service>.volumes_from and net: container:<service> entries are taken into account when resolving dependencies, so docker-compose up <service> will correctly start all dependencies of <service>.docker-compose run now accepts a --user argument to specify a user to run the command as, just like docker run.up, stop and restart commands now accept a --timeout (or -t) argument to specify how long to wait when attempting to gracefully stop containers, just like docker stop.docker-compose rm now accepts -f as a shorthand for --force, just like docker rm.Thanks, @abesto, @albers, @alunduil, @dnephin, @funkyfuture, @gilclark, @IanVS, @KingsleyKelly, @knutwalker, @thaJeztah and @vmalloc!
…file in another directory, this is a breaking change.
This is a release candidate for Compose 1.2.0. To try it out, run the following commands:
curl -L https://github.com/docker/compose/releases/download/1.2.0rc1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
Optionally, you can also install command completion for the bash shell.
Here's what's new:
docker-compose.yml now supports an extends option, which enables a service to inherit configuration from another service in another configuration file. This is really good for sharing common configuration between apps, or for configuring the same app for different environments. Here's the documentation.build.docker-compose up when using Compose with a Swarm cluster now work reliably.env_file and volume host paths in volumes are now treated as relative to the directory of the configuration file, not the directory that docker-compose is being run in. In the majority of cases, those are the same, but if you use the -f|--file argument to specify a configuration file in another directory, this is a breaking change.net: container:<service>.volumes_from and net: container:<service> entries are taken into account when resolving dependencies, so docker-compose up <service> will correctly start all dependencies of <service>.docker-compose run now accepts a --user argument to specify a user to run the command as, just like docker run.up, stop and restart commands now accept a --timeout (or -t) argument to specify how long to wait when attempting to gracefully stop containers, just like docker stop.docker-compose rm now accepts -f as a shorthand for --force, just like docker rm.Thanks, @abesto, @albers, @alunduil, @dnephin, @funkyfuture, @gilclark, @IanVS, @KingsleyKelly, @knutwalker, @thaJeztah and @vmalloc!
Fig has been renamed to Docker Compose, or just Compose for short. This has several implications for you:
Fig has been renamed to Docker Compose, or just Compose for short. This has several implications for you:
docker-compose, not fig.fig.yml to docker-compose.yml.docker-compose, so install it with pip install docker-compose.To install Compose, run the following commands:
curl -L https://github.com/docker/compose/releases/download/1.1.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
Besides that, there’s a lot of new stuff in this release:
docker-compose run now has a --service-ports flag for exposing ports on the given service. This is useful for e.g. running your webapp with an interactive debugger.external_links option in docker-compose.yml.docker-compose up from automatically building images with the --no-build option. This will make fewer API calls and run faster.image key, Compose will default to the latest tag, rather than pulling all tags.docker-compose kill now supports the -s flag, allowing you to specify the exact signal you want to send to a service’s containers.env_file key, analogous to docker run --env-file, letting you specify multiple environment variables in a separate file. This is great if you have a lot of them, or if you want to keep sensitive information out of version control.dns_search, cap_add, cap_drop, cpu_shares and restart options, analogous to docker run’s --dns-search, --cap-add, --cap-drop, --cpu-shares and --restart options.Thanks @dnephin, @squebe, @jbalonso, @raulcd, @benlangfeld, @albers, @ggtools, @bersace, @dtenenba, @petercv, @drewkett, @TFenby, @paulRbr, @Aigeruth and @salehe!
Compose now reads them and prints a deprecation warning.
Fig has been renamed to Docker Compose, or just Compose for short. This has several implications for you:
docker-compose, not fig.docker-compose.This is a release candidate for Docker Compose 1.1.0. To try it out, install via curl:
curl -L https://github.com/docker/fig/releases/download/1.1.0-rc2/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose; chmod +x /usr/local/bin/docker-compose
(If you install via PyPi, use pip install docker-compose==1.1.0-rc2.)
On top of the changelog for 1.1.0-rc1 (see below), the following bugs have been fixed:
env_file doesn't exist, Compose was showing a stack trace instead of a helpful error.fig.yml) were not being read unless explicitly specified with docker-compose -f. Compose now reads them and prints a deprecation warning.fig.yml if it's present.Here's the changelog for 1.1.0-rc1:
docker-compose run now has a --service-ports flag for exposing ports on the given service. This is useful for e.g. running your webapp with an interactive debugger.external_links option in docker-compose.yml.docker-compose up from automatically building images with the --no-build option. This will make fewer API calls and run faster.image key, Compose will default to the latest tag, rather than pulling all tags.docker-compose kill now supports the -s flag, allowing you to specify the exact signal you want to send to a service’s containers.env_file key, analogous to docker run --env-file, letting you specify multiple environment variables in a separate file. This is great if you have a lot of them, or if you want to keep sensitive information out of version control.dns_search, cap_add, cap_drop and restart options, analogous to docker run’s --dns-search, --cap-add, --cap-drop and --restart options.Fig has been renamed to Docker Compose, or just Compose for short. This has several implications for you:
Fig has been renamed to Docker Compose, or just Compose for short. This has several implications for you:
docker-compose, not fig.docker-compose.This is a release candidate for Docker Compose 1.1.0. To try it out, install via curl:
curl -L https://github.com/docker/fig/releases/download/1.1.0-rc1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose; chmod +x /usr/local/bin/docker-compose
(If you install via PyPi, use pip install docker-compose==1.1.0-rc1.)
Besides the rename, there’s a lot of new stuff:
docker-compose run now has a --service-ports flag for exposing ports on the given service. This is useful for e.g. running your webapp with an interactive debugger.external_links option in docker-compose.yml.docker-compose up from automatically building images with the --no-build option. This will make fewer API calls and run faster.image key, Compose will default to the latest tag, rather than pulling all tags.docker-compose kill now supports the -s flag, allowing you to specify the exact signal you want to send to a service’s containers.env_file key, analogous to docker run --env-file, letting you specify multiple environment variables in a separate file. This is great if you have a lot of them, or if you want to keep sensitive information out of version control.dns_search, cap_add, cap_drop and restart options, analogous to docker run’s --dns-search, --cap-add, --cap-drop and --restart options.Your coding agent can read these notes before it upgrades. Set up the MCP server →