Docker Compose报错“unsupported option 'target'”排查求助
解决Docker Compose "unsupported option 'target'" 错误
排查步骤及解决方案
确保Compose文件版本正确
target选项要求Compose文件版本至少为3.4,检查你的docker-compose.yml开头:version: '3.8' # 推荐使用3.8及以上版本,如3.9低版本(如2.x、3.0-3.3)不支持多阶段构建的
target参数,确认版本号无拼写错误。验证服务器上Docker Compose的实际版本
系统可能存在多个docker-compose实例,执行以下命令确认当前生效的版本:docker-compose --version若版本低于
1.29.0,必须升级:- 卸载旧版:
sudo apt purge docker-compose - 下载最新稳定版:
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose - 添加执行权限:
sudo chmod +x /usr/local/bin/docker-compose - 再次验证版本:
docker-compose --version
- 卸载旧版:
核对Dockerfile阶段与Compose的target匹配
确保Dockerfile里的阶段名称和Compose中target的值完全一致,比如Dockerfile:FROM node:18-alpine AS dev-builder # 构建步骤... FROM node:18-alpine AS prod-stage # 生产环境步骤...对应的Compose配置:
services: nest-app: build: context: . target: dev-builder # 必须和Dockerfile里AS后的名称完全一致检查Docker版本兼容性
Docker版本过低也可能导致特性支持问题,确保服务器Docker版本≥20.10.x:docker --version版本不够的话执行升级:
sudo apt update && sudo apt install --only-upgrade docker-ce docker-ce-cli containerd.io修正启动命令格式
不要用docker-compose up dev这种错误写法,若使用多环境配置文件,正确命令是:# 启动开发环境 docker-compose -f docker-compose.dev.yml up -d # 启动生产环境 docker-compose -f docker-compose.prod.yml up -d
内容的提问来源于stack exchange,提问作者Mauricio Rubio
相关产品推荐
相关产品推荐

