使用ECS CLI部署dotnet应用时报Compose版本不一致错误该如何处理?
问题原因
ECS CLI默认会自动加载工作目录下所有文件名匹配docker-compose*.yml的配置文件,要求所有被加载的文件的version字段必须完全一致。你只修改了主docker-compose.yml的版本号,项目下还有其他附带的docker compose配置文件仍然是3.4版本,所以触发了版本不一致的报错。
注意:你项目里的
.dockerignore规则仅作用于Docker镜像构建过程,不会限制ECS CLI读取本地配置文件。
解决步骤
- 第一步:遍历当前工作目录,找到所有docker compose相关配置文件,常见的包括
docker-compose.override.yml、docker-compose.prod.yml、docker-compose.staging.yml等,将所有这类文件的version字段统一修改为'3'。如果你是用Visual Studio创建的带Docker支持的.NET项目,会自动生成
docker-compose.override.yml文件,这个文件里默认会保留你最初设置的3.4版本,是最容易遗漏的修改点。 - 第二步:如果你不需要用到其他compose配置文件,可以在执行ECS CLI命令时手动指定仅加载主配置文件,通过
--file参数指定即可,修改后的命令参考:ecs-cli compose --file docker-compose.yml --project-name test-project service up --cluster-config test-config --ecs-profile test-profile - 额外说明:Dockerfile本身不需要配置compose版本,你不需要修改任何Dockerfile的内容。
- 验证方法:修改完成后先执行
ecs-cli compose config命令,确认没有版本报错后再执行部署操作。
内容的提问来源于stack exchange,提问作者Jim_Mcdonalds
相关产品推荐
相关产品推荐

