“./docker-compose.yml”中的版本不受支持

时间:2018-03-05 15:08:17

标签: docker docker-compose docker-machine

我有以下docker-compose.yml文件

services:
  containerA:
    healthcheck:
      test: "/build/docheck"
      interval: "10s"
    hostname: "containerA"
    container_name: "containerA"
    build:
      dockerfile: "Dockerfile-5.6"
    ports:
    - "8081:8081"
version: "2.1"

当我尝试以下命令时: docker-compose up

由于以下原因而失败:

错误:“./docker-compose.yml”中的版本不受支持。您可能会看到此错误,因为您使用的是错误的Compose文件版本。指定版本“2”(或“2.0”)并将服务定义放在services项下,或省略version项,并将服务定义放在文件的根目录中以供使用版本1。 有关Compose文件格式版本的更多信息,请参阅https://docs.docker.com/compose/compose-file/

我有以下设置:

$> docker-compose --version
docker-compose version 1.8.0, build unknown

$> docker --version
Docker version 17.12.0-ce, build c97c6d6

$> uname -r
4.9.0-4-amd64

$> lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description:    Debian GNU/Linux 9.3 (stretch)
Release:    9.3
Codename:   stretch

我需要使用版本2.1,因为我正在使用健康检查。有什么想法为什么抱怨?

4 个答案:

答案 0 :(得分:1)

点击有关版本的详细信息的链接后,您会找到:

  

版本2.1

     

版本2的升级,它引入了仅可用的新参数   使用Docker Engine版本1.12.0+。版本2.1文件受支持   撰写1.9.0 +。

https://docs.docker.com/compose/compose-file/compose-versioning/#version-21

您需要升级docker-compose安装以支持2.1文件版本。 https://docs.docker.com/compose/install/

答案 1 :(得分:1)

添加这个是因为我在Ubuntu上遇到了同样的错误。

对我而言,它与我的Compose版本无关,尽管错误消息说明了这一点;我只需要与sudo一起运行。所以

sudo docker-compose up

答案 2 :(得分:0)

当我使用docker compose版本3尝试命令docker-compose up时,我收到此错误。然后我运行命令检查docker版本docker version,结果是以下输出。

PS C:\SVenu\M4Movie\Api\Api> docker version
Client:
 Version:      18.03.1-ce
 API version:  1.37
 Go version:   go1.9.5
 Git commit:   9ee9f40
 Built:        Thu Apr 26 07:12:48 2018
 OS/Arch:      windows/amd64
 Experimental: false
 Orchestrator: swarm

所以我的版本是18.03,这是目前的最新版本。所以我转到这个link来检查支持这个引擎的compose文件版本。然后将我的docker compose版本更改为3.6。

version: '3.6'

之后一切都很好。

答案 3 :(得分:0)

安装 Docker Compose 新版本帮助我修复了此错误。参见official documentation