Spaces:
Running
Running
# 使用 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"] |