- Added support for the `${VAR:?err}` and `${VAR?err}` variable interpolation
syntax to indicate mandatory variables
#### Compose file version 2.x
- Added `priority` key to service network mappings, allowing the user to
define in which order the specified service will connect to each network
#### All formats
- Added `--renew-anon-volumes` (shorthand `-V`) to the `up` command,
preventing Compose from recovering volume data from previous containers for
anonymous volumes
- Added limit for number of simultaneous parallel operations, which should
prevent accidental resource exhaustion of the server. Default is 64 and
can be configured using the `COMPOSE_PARALLEL_LIMIT` environment variable
- Added `--always-recreate-deps` flag to the `up` command to force recreating
dependent services along with the dependency owner
- Added `COMPOSE_IGNORE_ORPHANS` environment variable to forgo orphan
container detection and suppress warnings
- Added `COMPOSE_FORCE_WINDOWS_HOST` environment variable to force Compose
to parse volume definitions as if the Docker host was a Windows system,
even if Compose itself is currently running on UNIX
- Bash completion should now be able to better differentiate between running,
stopped and paused services
### Bug fixes
- Fixed a bug that would cause the `build` command to report a connection
error when the build context contained unreadable files or FIFO objects.
These file types will now be handled appropriately
- Fixed various issues around interactive `run`/`exec` sessions.
- Fixed a bug where setting TLS options with environment and CLI flags
simultaneously would result in part of the configuration being ignored
- Fixed a bug where the DOCKER_TLS_VERIFY environment variable was being
ignored by Compose
- Fixed a bug where the `-d` and `--timeout` flags in `up` were erroneously
marked as incompatible
- Fixed a bug where the recreation of a service would break if the image
associated with the previous container had been removed
- Fixed a bug where updating a mount's target would break Compose when
trying to recreate the associated service
- Fixed a bug where `tmpfs` volumes declared using the extended syntax in
Compose files using version 3.2 would be erroneously created as anonymous
volumes instead
- Fixed a bug where type conversion errors would print a stacktrace instead
of exiting gracefully
- Fixed some errors related to unicode handling
- Dependent services no longer get recreated along with the dependency owner
if their configuration hasn't changed
- Added better validation of `labels` fields in Compose files. Label values
containing scalar types (number, boolean) now get automatically converted
to strings
## 1.18.0
(2017-12-18)
### New features
#### Compose file version 3.5
- Introduced version 3.5 of the `docker-compose.yml` specification.
This version requires Docker Engine 17.06.0 or above
- Added support for the `shm_size` parameter in build configurations
- Added support for the `isolation` parameter in service definitions
- Added support for custom names for network, secret and config definitions
#### Compose file version 2.3
- Added support for `extra_hosts` in build configuration
- Added support for the [long syntax](/reference/compose-file/legacy-versions.md) for volume entries, as previously introduced in the 3.2 format.
Using this syntax will create [mounts](/manuals/engine/storage/bind-mounts.md) instead of volumes.
#### Compose file version 2.1 and up
- Added support for the `oom_kill_disable` parameter in service definitions
(2.x only)
- Added support for custom names for network definitions (2.x only)
#### All formats
- Values interpolated from the environment will now be converted to the
proper type when used in non-string fields.
- Added support for `--label` in `docker-compose run`
- Added support for `--timeout` in `docker-compose down`
- Added support for `--memory` in `docker-compose build`