Home Explore Blog CI



docker

49th chunk of `content/manuals/compose/releases/release-notes.md`
6932de3673bf1da258b37e4c30e064eef1f98c009a94a7390000000100000fc9
-   Fixed a regression in 1.5.0 where non-utf-8 unicode characters would cause
    `up` or `logs` to crash.

-   Fixed a regression in 1.5.0 where Compose would use a success exit status
    code when a command fails due to an HTTP timeout communicating with the
    docker daemon.

-   Fixed a regression in 1.5.0 where `name` was being accepted as a valid
    service option which would override the actual name of the service.

-   When using `--x-networking` Compose no longer sets the hostname to the
    container name.

-   When using `--x-networking` Compose will only create the default network
    if at least one container is using the network.

-   When printings logs during `up` or `logs`, flush the output buffer after
    each line to prevent buffering issues from hiding logs.

-   Recreate a container if one of its dependencies is being created.
    Previously a container was only recreated if it's dependencies already
    existed, but were being recreated as well.

-   Add a warning when a `volume` in the Compose file is being ignored
    and masked by a container volume from a previous container.

-   Improve the output of `pull` when run without a tty.

-   When using multiple Compose files, validate each before attempting to merge
    them together. Previously invalid files would result in not helpful errors.

-   Allow dashes in keys in the `environment` service option.

-   Improve validation error messages by including the filename as part of the
    error message.

## 1.5.0

(2015-11-03)

### Breaking changes

With the introduction of variable substitution support in the Compose file, any
Compose file that uses an environment variable (`$VAR` or `${VAR}`) in the `command:`
or `entrypoint:` field will break.

Previously these values were interpolated inside the container, with a value
from the container environment.  In Compose 1.5.0, the values will be
interpolated on the host, with a value from the host environment.

To migrate a Compose file to 1.5.0, escape the variables with an extra `$`
(ex: `$$VAR` or `$${VAR}`).  See
https://github.com/docker/compose/blob/8cc8e61/docs/compose-file.md#variable-substitution

### Major features

-   Compose is now available for Windows.

-   Environment variables can be used in the Compose file. See
    https://github.com/docker/compose/blob/8cc8e61/docs/compose-file.md#variable-substitution

-   Multiple compose files can be specified, allowing you to override
    settings in the default Compose file. See
    https://github.com/docker/compose/blob/8cc8e61/docs/reference/docker-compose.md
    for more details.

-   Compose now produces better error messages when a file contains
    invalid configuration.

-   `up` now waits for all services to exit before shutting down,
    rather than shutting down as soon as one container exits.

-   Experimental support for the new docker networking system can be
    enabled with the `--x-networking` flag. Read more here:
    https://github.com/docker/docker/blob/8fee1c20/docs/userguide/dockernetworks.md

### New features

-   You can now optionally pass a mode to `volumes_from`. For example,
    `volumes_from: ["servicename:ro"]`.

-   Since Docker now lets you create volumes with names, you can refer to those
    volumes by name in `docker-compose.yml`. For example,
    `volumes: ["mydatavolume:/data"]` will mount the volume named
    `mydatavolume` at the path `/data` inside the container.

    If the first component of an entry in `volumes` starts with a `.`, `/` or `~`,
    it is treated as a path and expansion of relative paths is performed as
    necessary. Otherwise, it is treated as a volume name and passed straight
    through to Docker.

    Read more on named volumes and volume drivers here:
    https://github.com/docker/docker/blob/244d9c33/docs/userguide/dockervolumes.md

-   `docker-compose build --pull` instructs Compose to pull the base image for
    each Dockerfile before building.

-   `docker-compose pull --ignore-pull-failures` instructs Compose to continue

Title: Docker Compose 1.5.1 Improvements and 1.5.0 Release Notes
Summary
Docker Compose 1.5.1 includes fixes for regressions from 1.5.0, such as Unicode errors, incorrect exit status codes, and service name overrides. It improves `--x-networking` behavior, enhances log output, and addresses container dependency recreation. Additionally, it warns about ignored volumes and improves `pull` output and Compose file validation. Docker Compose 1.5.0 introduces breaking changes in variable substitution, now interpolating on the host rather than the container, requiring variable escaping. Major features include Windows support, environment variables in Compose files, multiple Compose file support, better error messages, improved `up` shutdown behavior, and experimental Docker networking support. New features include optional mode for `volumes_from`, named volume support, and the `--pull` and `--ignore-pull-failures` options for `docker-compose build` and `docker-compose pull` respectively.