繁体   English   中英

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

[英]Version in "./docker-compose.yml" is unsupported

我有以下 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 版,因为我正在使用运行状况检查。 任何想法为什么这是抱怨?

在链接到有关版本的详细信息之后,您将找到:

版本2.1

版本2的升级引入了仅适用于Docker Engine 1.12.0+版本的新参数。 Compose 1.9.0+支持2.1版文件。

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

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

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

对我来说,尽管错误消息说的是什么,但它与我的Compose版本无关。 我只需要和sudo一起跑步。 所以

sudo docker-compose up

Docker Compose 版本 1.9.0+支持 Compose 文件版本 2.1。 你有docker-compose版本 1.8.0。 要升级docker-compose ,您可以运行以下命令:

如果通过apt-get安装:

sudo apt-get remove docker-compose

如果通过curl安装:

sudo rm /usr/local/bin/docker-compose

如果通过pip安装:

pip uninstall docker-compose

然后在 GitHub 的发布页面上找到最新版本,或者通过卷曲 API 并使用 grep 从响应中提取版本:

VERSION=$(curl --silent https://api.github.com/repos/docker/compose/releases/latest | grep -Po '"tag_name": "\K.*\d')

最后,下载到您的 $PATH 可访问位置并设置权限:

DESTINATION=/usr/bin/docker-compose
sudo curl -L https://github.com/docker/compose/releases/download/${VERSION}/docker-compose-$(uname -s)-$(uname -m) -o $DESTINATION
sudo chmod 755 $DESTINATION

我在尝试使用docker-compose up版本3的docker-compose up命令时遇到此错误,然后运行命令以检查docker version 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,这是目前的最新版本。 因此,我转到此链接来检查支持此引擎的撰写文件版本。 然后将我的docker compose版本更改为3.6。

version: '3.6'

在那之后一切都很好。

安装新版本Docker Compose帮助我修复了此错误。 请参阅官方文档

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM