# ──────────────────── # 第一步:构建阶段 # ──────────────────── FROM node:20 AS builder WORKDIR /app # 安装依赖 COPY package*.json yarn.lock ./ COPY .env . RUN yarn install --frozen-lockfile # 拷贝源码并构建 COPY . . COPY . src/ RUN yarn build # ──────────────────── # 第二步:运行阶段(调试用) # ──────────────────── FROM node:20-slim AS runtime WORKDIR /app # 拷贝构建产物和依赖 COPY --from=builder /app/.output .output COPY --from=builder /app/node_modules ./node_modules # 拷贝源代码以便调试 COPY --from=builder /app/src ./src COPY --from=builder /app/nuxt.config.ts ./nuxt.config.ts COPY --from=builder /app/package.json ./package.json # 安装调试工具和 serve RUN apt-get update \ && apt-get install -y vim net-tools bash \ && npm install -g serve \ && rm -rf /var/lib/apt/lists/* # 暴露端口 EXPOSE 8091 # 配置环境 ENV HOST=0.0.0.0 ENV PORT=8091 # 进入交互式 shell 以便调试 CMD ["bash"]