You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker构建报错LLB definition未创建:找不到development目标阶段

问题根因

该报错的直接原因是:你的docker-compose.yml配置中,前端app服务的build规则里指定了target: development参数,但你提供的Dockerfile中没有定义任何名为development的构建阶段,因此构建时找不到目标阶段触发报错。

排查思路
  • 首先检查项目根目录下的docker-compose.yml文件,找到前端app服务的build配置段,确认是否配置了target字段,值是否为development
  • 核对当前使用的Dockerfile的所有阶段命名,你现有Dockerfile里仅定义了node_base、deps两个阶段,不存在和target匹配的development阶段
  • 确认部署需求:是要启动带热重载的开发环境服务,还是要构建生产版本用静态资源服务托管
解决方案

分两种场景处理:

场景1:确实需要使用docker-compose指定的development阶段

修改Dockerfile,补充命名为development的阶段,调整多阶段构建逻辑,优化缓存复用效率,修改后的参考Dockerfile如下:

FROM node:16.13.0-alpine AS node_base

# 依赖安装阶段(依赖不变时会复用缓存,无需每次重新装包)
FROM node_base as deps
WORKDIR /11PlusProjectFrontEnd
COPY package.json yarn.lock ./
RUN yarn install

# 新增development阶段,对应docker-compose的target配置
FROM node_base as development
WORKDIR /11PlusProjectFrontEnd
COPY --from=deps /11PlusProjectFrontEnd/node_modules ./node_modules
COPY . .
EXPOSE 3000
# 开发环境启动命令,支持热重载
CMD ["yarn", "start"]

# 可选:保留生产构建和运行阶段,生产部署时可指定target为production
FROM node_base as build
WORKDIR /11PlusProjectFrontEnd
COPY --from=deps /11PlusProjectFrontEnd/node_modules ./node_modules
COPY . .
RUN yarn build

FROM nginx:alpine as production
COPY --from=build /11PlusProjectFrontEnd/build /usr/share/nginx/html
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]

场景2:无需指定构建目标,属于配置写错

直接修改docker-compose.yml里app服务的build配置,删除target: development这一行即可,你原有的Dockerfile虽然注释了部分多阶段逻辑,但可以正常完成构建启动。

可选优化:你原Dockerfile把COPY . .和yarn build都放在了deps阶段,会导致每次修改代码都要重新安装依赖,不符合多阶段构建的缓存优化逻辑,建议按上面的示例拆分阶段,提升构建速度。

内容的提问来源于stack exchange,提问作者Hj123

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 01:06:07