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

Vin*_*eph 12 docker docker-compose

我正在一个包含相关 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/
Run Code Online (Sandbox Code Playgroud)

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

docker-compose 版本

root@ubuntu18_demo_2:~/IDOLDockerContainers_12.4.0_COMMON/basic-idol# docker-compose -version
docker-compose version 1.17.1, build unknown
Run Code Online (Sandbox Code Playgroud)

码头工人版本

root@ubuntu18_demo_2:~/IDOLDockerContainers_12.4.0_COMMON/basic-idol# docker -v
Docker version 19.03.1, build 74b1e89
Run Code Online (Sandbox Code Playgroud)

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

atl*_*ine 11

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

详细参考这个


KAR*_*N.A 11

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

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


小智 8

规范在Compose v1.27中进行了更新,以合并版本中的属性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
Run Code Online (Sandbox Code Playgroud)