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

问题描述 投票:0回答:7

我正在包含相关 docker 文件和 yml 文件的文件夹中运行 docker-compose build。我看到以下错误

root@ubuntu187_demo_2:~/IDOLDockerContainers_12.4.0_COMMON/basic-idol# docker-compose build
ERROR: Version in "./docker-compose.yml" is unsupported. You might be seeing this error because you're using the wrong Compose file version. Either specify a supported version (e.g "2.2" or "3.3") and place your service definitions under the `services` key, or omit the `version` key and place your service definitions at the root of the file to use version 1.
For more on the Compose file format versions, see https://docs.docker.com/compose/compose-file/

docker-compose.yml如下

# Basic IDOL container setup
# Uses nifi to ingest and index data into content
# Uses find to make search results available
# Default admin user is created for find in the community service
#  - see community/run_community.sh for details

version: "3.7"

x-args-shared:
  - &idol-version IDOL_VERSION=12.4.0 # version of IDOL components to use

# Change the IP to the address of an external IDOL LicenseServer instance
x-external-licenseserver-host: &external-licenseserver-host
  - "idol-licenseserver:xx.xx.xx.xx"

# Shared volume configuration for nifi and view service - see volumes
x-idol-ingest-volume: &idol-ingest-volume
  - idol-ingest-volume:/idol-ingest

#x-idol-categorisation-volume: &idol-categorisation-volume
#  - idol-categorisation-volume:/idol-categorisation

# Shared volume in NiFi and View
# Any files dropped into this volume will be ingested and indexed
volumes:
  idol-ingest-volume:
# idol-categorisation-volume:

services:
  idol-content:
    image: idol-compose/content
    build:
      context: ./content
      args:
        - *idol-version
    extra_hosts: *external-licenseserver-host
    ports:
      - 9100:9100

docker-compose 版本

root@ubuntu18_demo_2:~/IDOLDockerContainers_12.4.0_COMMON/basic-idol# docker-compose -version
docker-compose version 1.17.1, build unknown

docker版本

root@ubuntu18_demo_2:~/IDOLDockerContainers_12.4.0_COMMON/basic-idol# docker -v
Docker version 19.03.1, build 74b1e89

我无法更改 docker-compose.yml 文件上的版本。

docker docker-compose
7个回答
23
投票

我已使用以下步骤解决了该问题

$ sudo apt-get remove docker-compose
$ sudo curl -L "https://github.com/docker/compose/releases/download/1.23.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
$ sudo chmod +x /usr/local/bin/docker-compose
$ sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

18
投票

您的compose太旧,如果无法更改compose中的版本,请尝试升级到最新的docker-compose版本

sudo curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

详情参考这个


8
投票

Compose v1.27 中更新了 spec,将版本

2.x
3.x
组合文件中的属性合并为单一格式。由于遗留原因,仍可以包含
version
属性,但不再需要,并且如果运行最新版本的
docker-compose
,可以省略。

以下脚本将更新您在 Ubuntu 上的安装并解决问题:

#!/bin/bash
sudo apt-get remove docker-compose 
sudo curl -L "https://github.com/docker/compose/releases/download/1.27.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

1
投票

使用“sudo”命令对我有用。

sudo docker-compose up

1
投票

Docker 现在正式支持 compose,因此根据文档https://docs.docker.com/compose/install/compose-plugin/#install-using-the-repository 使用

sudo apt-get install docker-compose-plugin
然后
docker compose

如果您使用

sudo apt-get install docker-compose
然后使用
docker-compose
那么您最终会得到不支持最新格式的旧工具。


0
投票

我执行了以下步骤:

sudo apt-get remove docker-compose
sudo curl -L "https://github.com/docker/compose/releases/download/1.23.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

我希望这能解决这个问题。


0
投票

如果你有

version: '3.9'
或更高

你应该跑

docker compose up

而不是

docker-compose up

© www.soinside.com 2019 - 2024. All rights reserved.