Included docker-compose version

TLDR: Why is latest docker for Windows not shipping with latest docker-compose version


Hello everyone, for my use-case, we need to be able to use a .env file that loads multiple docker-compose.yml files. To do so, you need a variable=value like the following:
COMPOSE_FILE=docker-compose1.yml:docker-compose2.yml

In the previous example, I’m using a colon as the default separator on Linux & MacOS.
But Windows being always different, it requires those colons to be replaced with semi-colons.
We want our .env file to be compatible for both Windows AND Linux.

The way to do this is by specifying a character to be used as path separator using like so:
COMPOSE_PATH_SEPARATOR=#
COMPOSE_FILE=docker-compose1.yml#docker-compose2.yml

The issue I faced while testing this is that this new variable was introduced in docker-compose version 1.12.0. The current docker for Windows installer is installing 1.11.2 (which doesn’t have the fix)

My question right now is two-fold:

  1. Why isn’t docker for Windows using the latest docker-compose (which is now at 1.13.0)
  2. If I manually installed the new version of docker-compose, why does upgrading docker downgrade my docker-compose file. Shouldn’t there be a mechanism to not install an older version?

Thank you.

The latest Edge releases include Docker Compose 1.12: https://docs.docker.com/docker-for-windows/release-notes/#docker-community-edition-1704-win7-release-notes-2017-04-06-17040-ce-win7-edge

For a given quarterly stable release of Docker for Windows (eg. 17.03), the Docker Compose version will stay constant to avoid introducing bugs or incompatibilities.

Details here: https://blog.docker.com/2017/03/docker-enterprise-edition/