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.x
。 3.x
版本专注于 Swarm 模式支持,并删除了一些在 Swarm 模式下不起作用的功能,例如 build
和 depends_on
。
自从 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.x
。 3.x
版本专注于 Swarm 模式支持,并删除了一些在 Swarm 模式下不起作用的功能,例如 build
和 depends_on
。