Circle CI and Docker Compose Version 2 YAML syntax

I’m getting a peculiar bug when I attempt to use docker compose up with a Version 2 yaml syntax compose file. The error reads as follows:

------------- Executing Compose -------------
Creating network “compose_default” with the default driver
ERROR: 404 page not found

I am attempting to perform a compose statement as follows:

echo " ------------- Executing Compose ------------- " docker-compose --file ../cluster-test.yml up -d

Where cluster-test.yml reads:

version: ‘2’
services:
dbpostgres:
image: postgres:9.4

Finally, here are the versions of docker and docker-compose on the machine:

docker-compose -v
docker-compose version 1.7.1, build 6c29830

docker -v
Docker version 1.8.3-circleci, build 5074b56

Anyone come across this before?

Ah - looks like I need to upgrade my docker version to 1.10+

Did upgrading do the trick?

What exactly did you do?

Yep - upgrading the Docker version to 1.10 worked. But it’s caused a myriad of other issues… Here’s the syntax to upgrade the Docker version:

machine:
  pre:
    - curl -sSL https://s3.amazonaws.com/circle-downloads/install-circleci-docker.sh | bash -s -- 1.10.0

Later I do the following:

dependencies:
  pre:
    - sudo pip install docker-compose

This definitely enables the launch of compose version 2 files.

2 Likes

Thanks! This is working for me!

After the pip install, I am doing “docker info” and it says docker isn’t running.

Do I need to manually start docker?

@epugh make sure that you have docker service enabled in circle.yml

machine:
  pre:
    # https://discuss.circleci.com/t/docker-1-10-0-is-available-beta/2100
    - curl -sSL https://s3.amazonaws.com/circle-downloads/install-circleci-docker.sh | bash -s -- 1.10.0
    - pip install docker-compose==1.8.0
  services:
    - docker
1 Like