Web 配置器
为 Web 应用生成优化的多阶段构建 Dockerfile
配置选项
⚠️ 需要在 next.config.js 中配置 output: "standalone"
Dockerfile
1# Generated by DockerFit (https://tools.eastondev.com/docker)2# Next.js + pnpm + Node 203# Optimized multi-stage build ✓45# ========== Stage 1: Install dependencies ==========6FROM node:20-alpine AS deps78# Enable pnpm9RUN corepack enable pnpm1011WORKDIR /app1213# Copy package files14COPY package.json pnpm-lock.yaml ./1516# Install dependencies with cache17RUN --mount=type=cache,id=pnpm,target=/pnpm/store \18 pnpm install --frozen-lockfile1920# ========== Stage 2: Build ==========21FROM node:20-alpine AS builder2223RUN corepack enable pnpm2425WORKDIR /app2627# Copy dependencies from deps stage28COPY --from=deps /app/node_modules ./node_modules29COPY . .3031# Disable Next.js telemetry32ENV NEXT_TELEMETRY_DISABLED=13334# Build the application35RUN pnpm build3637# ========== Stage 3: Production ==========38FROM node:20-alpine AS runner3940WORKDIR /app4142# Set production environment43ENV NODE_ENV=production44ENV NEXT_TELEMETRY_DISABLED=145ENV HOSTNAME="0.0.0.0"4647# Create non-root user for security48RUN addgroup --system --gid 1001 nodejs && \49 adduser --system --uid 1001 appuser5051# Copy standalone build (requires output: 'standalone' in next.config.js)52COPY --from=builder --chown=appuser:nodejs /app/.next/standalone ./53COPY --from=builder --chown=appuser:nodejs /app/.next/static ./.next/static54COPY --from=builder --chown=appuser:nodejs /app/public ./public5556USER appuser5758EXPOSE 30005960CMD ["node", "server.js"]
推荐部署平台
Railway - 开发者友好的部署平台
专业的容器托管平台,支持 Dockerfile 一键上线,注册立享 $20 新用户奖励。
- 注册即领 $20 体验金
- 支持 Dockerfile & GitHub 自动部署
- 真正的按量计费,起步成本极低
- 内置 PostgreSQL, Redis 等数据库
使用提示
- • 开启 Next.js standalone 模式可大幅减小镜像体积
- • 使用
pnpm获得更快的安装速度 - • 添加
.dockerignore排除 node_modules 和 .next
构建运行
构建并运行容器化应用:
docker build -t my-app . && docker run -p 3000:3000 my-app