CircleCI'./docker-compose.yml'service'version'没有任何配置选项

时间:2017-02-02 23:12:10

标签: docker docker-compose circleci

相关,但不重复Docker - docker-compose 'version' doesn't have any configuration options

我目前正在使用带有以下docker-compose.yml v2 circle.yml

machine:
  services:
    - docker

test:
  post:
    - docker build --rm=false -t zurfyx/repo:$CIRCLE_SHA1 .
    - docker-compose run web npm test

deployment:
  hub:
    branch: master
    commands:
      - docker login -e $DOCKER_EMAIL -u $DOCKER_USER -p $DOCKER_PASS
      - docker push zurfyx/repo:$CIRCLE_SHA1

CircleCI提供以下输出:

docker-compose run web npm test
ERROR: In file './docker-compose.yml' service 'version' doesn't have any configuration options. All top level keys in your docker-compose.yml must map to a dictionary of configuration options.

docker-compose run web npm test returned exit code 1

我尝试了最近出现在CircleCI论坛帖子中的following solutions,但我没有设法摆脱这个问题。

1 个答案:

答案 0 :(得分:8)

需要将两者 docker和docker-compose升级到最新版本:

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

  services:
    - docker

为什么两者兼而有之?

有人说使用pip升级docker-compose到最新版本就足够了,但显然不是(因为当前的Docker Engine CircleCI版本不支持它,至少不再支持它):

  

错误:Docker Engine版本低于最低要求   撰写。您当前的项目需要Docker Engine版本   1.10.0或更高。

如果您只是升级Docker引擎,它没有任何区别,因为需要更高的docker-compose版本来解析v2 YAML文档。