diff --git a/Dockerfile b/Dockerfile index ab431d8..6c5ba18 100644 --- a/Dockerfile +++ b/Dockerfile @@ -31,6 +31,9 @@ RUN pnpm run build # ---- 第 3 阶段:生成运行时镜像 ---- FROM node:24-alpine AS runner +# 启用 corepack 并激活 pnpm(用于安装额外依赖) +RUN corepack enable && corepack prepare pnpm@latest --activate + # 创建非 root 用户 RUN addgroup -g 1001 -S nodejs && adduser -u 1001 -S nextjs -G nodejs @@ -52,6 +55,12 @@ COPY --from=builder --chown=nextjs:nodejs /app/server.js ./server.js COPY --from=builder --chown=nextjs:nodejs /app/public ./public COPY --from=builder --chown=nextjs:nodejs /app/.next/static ./.next/static +# 复制 package.json 用于安装 Socket.IO 依赖 +COPY --from=builder --chown=nextjs:nodejs /app/package.json ./package.json + +# 安装 Socket.IO 相关依赖(standalone 模式不会自动包含) +RUN pnpm add socket.io@^4.8.1 socket.io-client@^4.8.1 --prod + # 切换到非特权用户 USER nextjs