# syntax=docker/dockerfile:1.6 FROM node:20-alpine AS base ENV NODE_ENV=development \ NEXT_TELEMETRY_DISABLED=1 \ CI=false WORKDIR /workspace/frontend # 仅复制依赖清单,最大化利用缓存 COPY frontend/package.json frontend/package-lock.json ./ # 使用 npm ci(若失败则回退 npm install,避免镜像构建被锁文件问题卡住) RUN npm ci || npm install # 运行时通过挂载卷提供源码 RUN mkdir -p /workspace/frontend # 缺省入口由 docker-compose 提供