# CVE-2025-66478 演示环境 # 构建一个易受攻击的 Next.js 应用程序用于测试 FROM node:20-alpine AS base # 安装依赖阶段 FROM base AS deps RUN apk add --no-cache libc6-compat WORKDIR /app # 复制 package 文件 COPY vulnerable-app/package.json vulnerable-app/package-lock.json ./ RUN npm ci # 构建阶段 FROM base AS builder WORKDIR /app COPY --from=deps /app/node_modules ./node_modules COPY vulnerable-app/ . # 构建 Next.js 应用 ENV NEXT_TELEMETRY_DISABLED=1 # 确保 public 目录存在(如果不存在则创建) RUN mkdir -p ./public RUN npm run build # 运行阶段 FROM base AS runner WORKDIR /app ENV NODE_ENV=production ENV NEXT_TELEMETRY_DISABLED=1 RUN addgroup --system --gid 1001 nodejs RUN adduser --system --uid 1001 nextjs # 复制必要的文件 COPY --from=builder --chown=nextjs:nodejs /app/.next ./.next COPY --from=builder --chown=nextjs:nodejs /app/node_modules ./node_modules COPY --from=builder --chown=nextjs:nodejs /app/package.json ./package.json COPY --from=builder --chown=nextjs:nodejs /app/public ./public USER nextjs EXPOSE 3000 ENV PORT=3000 ENV HOSTNAME="0.0.0.0" # 启动 Next.js 应用 CMD ["npm", "start"]