diff --git a/Dockerfile b/Dockerfile index a83040a..6fb6dd7 100644 --- a/Dockerfile +++ b/Dockerfile @@ -3,14 +3,14 @@ FROM node:22.14.0-slim AS builder WORKDIR /app +# 全局安装 pnpm RUN npm install -g pnpm -# 2. 复制依赖文件(优先层) +# 复制依赖文件 COPY package.json pnpm-lock.yaml ./ -# RUN npm ci --legacy-peer-deps RUN pnpm install -# 3. 复制源码并构建 +# 复制源码并构建 COPY . . RUN pnpm run build @@ -19,25 +19,17 @@ FROM node:22.14.0-slim WORKDIR /app -# 1. 生产环境配置 - -ENV PORT 3000 - -# 2. 从构建阶段复制文件 -# COPY --from=builder /app/package.json . -# COPY --from=builder /app/pnpm-lock.yaml . -# COPY --from=builder /app/node_modules ./node_modules -# COPY --from=builder /app/next ./next +# 全局安装 pnpm(确保运行时可用) +RUN npm install -g pnpm -# 3. 如果是自定义服务器需要复制 -# COPY --from=builder /app/server ./server +# 从构建阶段复制所有文件(包括 node_modules 和构建产物) +COPY --from=builder /app . -# 4. 非root用户 -# RUN groupadd -g 1001 nodejs && \ -# useradd -u 1001 -g nodejs -d /app nodejs && \ -# chown -R nodejs:nodejs /app +# 设置环境变量 +ENV PORT 3000 +ENV NODE_ENV production EXPOSE 3000 -# 关键修正点:使用 npm start 启动 -CMD ["pnpm", "run", "start"] \ No newline at end of file +# 使用 pnpm 启动 +CMD ["pnpm", "start"] \ No newline at end of file