# ──────────────────── # 第一步:构建阶段 # ──────────────────── FROM node:20 AS builder WORKDIR /app COPY package*.json yarn.lock ./ RUN yarn install --frozen-lockfile COPY . . RUN yarn build # ──────────────────── # 第二步:运行阶段 # ──────────────────── FROM node:20-slim AS runtime WORKDIR /app # 拷贝构建产物 COPY --from=builder /app/.output .output # 安装生产依赖(如有) COPY package*.json yarn.lock ./ RUN yarn install --production --frozen-lockfile # 暴露端口 EXPOSE 8091 # 启动 Nuxt CMD ["node", ".output/server/index.mjs"]