Si vous quittez Vercel pour un container (Fly.io, Railway, Kubernetes), le premier piège est le Dockerfile. Avec les bons choix, vous produisez une image de 180 Mo qui démarre en 300 ms. Avec les mauvais, 1,2 Go qui met 5 s à démarrer.

Clé de la performance : output: "standalone" dans next.config.js, multi-stage build, et image de base alpine.

La structure gagnante

  • Stage 1 : deps — installer node_modules
  • Stage 2 : builder — next build
  • Stage 3 : runner — copier .next/standalone, run

Les 5 erreurs classiques

  1. Copier tout le code au début => cache Docker inutile. Copiez package*.json d'abord.
  2. Utiliser node:latest => image lourde. Prenez node:20-alpine.
  3. Oublier output: "standalone" => image 800 Mo au lieu de 180.
  4. Lancer en root => sécu : créer un user nextjs.
  5. Pas de HEALTHCHECK => orchestrateur ne détecte pas les zombies.

Taille finale attendue

Un Next.js 15 app router avec 20 routes et 50 dépendances tient dans 180-220 Mo en image finale. Au-delà de 400 Mo, quelque chose déraille.

Un Dockerfile propre, c'est 15 minutes de gagnées à chaque déploiement pendant 2 ans.

On dockerise votre app ?

En 30 minutes on peut cadrer votre setup. Réservez un appel. À lire : Serverless vs container.

A project to launch or to rescue?

30-minute free call. We look together at what's blocking you and where to start.

Book a discovery call
Dockerfile optimisé pour Next.js : recette et pièges à éviter · Perrine Honoré