Rails项目执行bin/setup时docker-compose版本不匹配但本地版本一致
问题原因及修复方案
核心诱因
你混淆了两个完全独立的版本定义:
docker-compose.yml顶部的version字段声明的是Compose文件格式规范版本,和你本地安装的docker-compose二进制工具版本没有直接对应关系- docker-compose 1.29.2最高支持的Compose文件格式版本为
3.8,你直接在配置文件中写version: "1.29.2"不符合格式规范,因此触发版本无效报错。
其他可能的触发原因
- 本地同时安装了docker-compose V1(带横杠的
docker-compose命令)和Docker Compose V2(集成在docker cli中的docker compose命令),bin/setup脚本调用的是V2版本,而你手动执行版本查询调用的是V1版本,两者解析规则不匹配 docker-compose.yml的version行存在不可见特殊字符、引号配对错误,导致版本解析异常
修复步骤
- 修改
docker-compose.yml顶部的version声明为适配的值即可:
version: "3.8"
- 检查
bin/setup脚本内的compose调用命令,确认统一使用docker-compose(适配你当前安装的V1版本) - 若怀疑存在特殊字符,手动重写version行,避免复制粘贴带入不可见字符
若后续升级到Docker Compose V2,可直接省略配置文件顶部的version字段,工具会自动兼容解析配置。
内容的提问来源于stack exchange,提问作者Paul Anthony McGowan
相关产品推荐
相关产品推荐

