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

zur*_*fyx 1 docker circleci docker-compose

相关但不重复:Docker - docker-compose'version'没有任何配置选项

我目前正在使用具有以下内容的v2 :docker-compose.ymlcircle.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
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

我尝试了以下解决方案,这些解决方案出现在最近的CircleCI论坛帖子中,但我没有设法摆脱这个问题.

zur*_*fyx 8

升级两个码头工人和码头工人,组成以需要最新版本:

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
Run Code Online (Sandbox Code Playgroud)

两个为什么?

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

错误:Docker Engine版本低于Compose所需的最低版本.您当前的项目需要版本为1.10.0或更高版本的Docker Engine.

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