相关,但不重复: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,但我没有设法摆脱这个问题。
答案 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文档。