Docker:“.\docker-compose.yml”中的版本“4.7.0”无效

Docker: Version "4.7.0" in ".\docker-compose.yml" is invalid

自从 Docker 发布了 4.7.0 的新更新后,我收到了上述错误。 这是我的 docker-compose.yml:

version: "20.10.14"

services:
  postgres:
    environment:
      POSTGRES_PASSWORD: xxxx
      POSTGRES_DB: marketplace
      POSTGRES_USER: postgres
    build:
      dockerfile: ./dbdockerfile/Dockerfile
  football_marketplace:
    build:
      dockerfile: Dockerfile
    ports:
      - 3300:3300
    depends_on:
      - "postgres"
  reactjs:
    build:
      dockerfile: ./football_marketplace-app/frontend/Dockerfile
    ports:
      - 3000:3000

我将 docker 更新为 4.7.0 并尝试了多个版本号作为替代。我试了20.10.14,就是客户端版本。我试过 4.7.0 和其他几个数字。

这是我的 docker 版本输出:

Client:
 Cloud integration: v1.0.23
 Version:           20.10.14
 API version:       1.41
 Go version:        go1.16.15
 Git commit:        a224086
 Built:             Thu Mar 24 01:53:11 2022
 OS/Arch:           windows/amd64
 Context:           default
 Experimental:      true

Server: Docker Desktop 4.7.0 (77141)
 Engine:
  Version:          20.10.14
  API version:      1.41 (minimum version 1.12)
  Go version:       go1.16.15
  Git commit:       87a90dc
  Built:            Thu Mar 24 01:46:14 2022
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.5.11
  GitCommit:        3df54a852345ae127d1fa3092b95168e4a88e2f8
 runc:
  Version:          1.0.3
  GitCommit:        v1.0.3-0-gf46b6ba
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0

我已经阅读了这里关于此错误的其他主题,但大多数建议我根本不使用 docker-compose.override.yml 出了问题。或者 docker 版本与 docker-compose.yml 中的版本号不匹配,但我的匹配。

compose文件中的版本是2.x,3.x,或者最新的compose-spec,完全删除:

https://docs.docker.com/compose/compose-file/#version-top-level-element

如果您想支持遗留环境(其中许多仍然存在,因为 compose-spec 相对较新),然后使用 2.4,这是最新的 2.x3.x 版本专注于 Swarm 模式支持,并删除了一些在 Swarm 模式下不起作用的功能,例如 builddepends_on