我有以下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,因为我正在使用健康检查。有什么想法为什么抱怨?
答案 0 :(得分:1)
点击有关版本的详细信息的链接后,您会找到:
版本2.1
版本2的升级,它引入了仅可用的新参数 使用Docker Engine版本1.12.0+。版本2.1文件受支持 撰写1.9.0 +。
https://docs.docker.com/compose/compose-file/compose-versioning/#version-21
您需要升级docker-compose安装以支持2.1文件版本。 https://docs.docker.com/compose/install/
答案 1 :(得分:1)
添加这个是因为我在Ubuntu上遇到了同样的错误。
对我而言,它与我的Compose
版本无关,尽管错误消息说明了这一点;我只需要与sudo
一起运行。所以
sudo docker-compose up
答案 2 :(得分:0)
当我使用docker compose版本3尝试命令docker-compose up
时,我收到此错误。然后我运行命令检查docker版本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,这是目前的最新版本。所以我转到这个link来检查支持这个引擎的compose文件版本。然后将我的docker compose版本更改为3.6。
version: '3.6'
之后一切都很好。
答案 3 :(得分:0)
安装 Docker Compose 的新版本帮助我修复了此错误。参见official documentation。