不受支持的 Compose 文件版本: 1.0 ,即使我有正确的兼容性设置

cod*_*hal 13 docker

我正在尝试堆栈部署。

> docker stack deploy -c docker-compose.yml name
unsupported Compose file version: 1.0
Run Code Online (Sandbox Code Playgroud)

这些是我的设置

> docker-compose version
docker-compose version 1.6.0, build d99cad6
docker-py version: 1.7.0
CPython version: 2.7.9
OpenSSL version: OpenSSL 1.0.1j 15 Oct 2014


> docker version
Server: Docker Engine - Community
 Engine:
  Version:          19.03.0-beta3
Run Code Online (Sandbox Code Playgroud)

我满足此处指定的兼容性要求https://github.com/docker/compose/releases/tag/1.6.0

请注意,Compose 1.6.0 需要 Docker Engine 1.9.1 或更高版本,如果您使用的是 Compose 文件格式的版本 2,则需要 1.10.0(请参阅下面的更改日志)。

为什么这不起作用?

tch*_*ron 22

我在使用命令预处理 docker-compose.yml 文件以便在docker stack deploy命令中使用变量插值时遇到此错误。

命令 :
docker compose -f docker-compose.swarm.yml config | docker stack deploy --compose-file - stackname

错误 :
unsupported Compose file version: 1.0

这是由于docker compose -f docker-compose.swarm.yml config命令由于某种原因未从我的 docker-compose 文件中输出“version: '3.8'”行导致的,因此它回落到 '1.0'


快速解决方法:
(echo -e "version: '3.8'\n"; docker compose -f docker-compose.swarm.yml config) | docker stack deploy --compose-file - stackname