# 使用 Node.js 18 作为基础镜像,并命名为 builder FROM node:18-alpine AS builder # 设置工作目录 WORKDIR /app # 复制 package.json 和 package-lock.json 文件 COPY package*.json ./ # 安装项目依赖 RUN npm install # 复制项目的所有代码文件到工作目录 COPY . . # 构建 Next.js 应用程序,使用 --no-lint 跳过 ESLint 检查 RUN npm run build --no-lint # 创建一个精简的镜像,用于运行应用程序 FROM node:18-alpine # 设置工作目录 WORKDIR /app # 从 builder 镜像复制构建好的 Next.js 应用 COPY --from=builder /app/.next ./.next COPY --from=builder /app/node_modules ./node_modules COPY --from=builder /app/public ./public COPY --from=builder /app/package*.json ./ COPY --from=builder /app/next.config.mjs ./ COPY --from=builder /app/postcss.config.mjs ./ # 设置 NODE_ENV 为 production ENV NODE_ENV production # 暴露容器的 3000 端口 EXPOSE 3000 # 使用 npm run start 命令启动 Next.js 应用程序 CMD ["npm", "run", "start"]