Déployer Node.js et Next.js
Une API Node.js ou une application Next.js : le Dockerfile, le port, les variables lues au build, et la base.
Le Dockerfile
Section intitulée « Le Dockerfile »Fransys déploie une image Docker. Un exemple pour Next.js, avec la sortie standalone (output: 'standalone' dans next.config.js) :
FROM node:22-alpine AS buildWORKDIR /appCOPY package.json package-lock.json ./RUN npm ciCOPY . .RUN npm run build
FROM node:22-alpineWORKDIR /appENV NODE_ENV=production PORT=3000 HOSTNAME=0.0.0.0COPY --from=build /app/.next/standalone ./COPY --from=build /app/.next/static ./.next/staticCOPY --from=build /app/public ./publicEXPOSE 3000CMD ["node", "server.js"]Pour une API Node.js, le principe est le même : installer, construire si besoin, puis lancer le serveur. Écoutez sur 0.0.0.0, pas sur localhost.
Le service
Section intitulée « Le service »Ajoutez une Application, branchez le dépôt et la CI (Depuis GitHub ou GitLab), puis réglez le Port du conteneur sur 3000 (ou celui de votre EXPOSE).
Les variables lues au build
Section intitulée « Les variables lues au build »Next.js inscrit les variables NEXT_PUBLIC_… dans le code au moment du build. La CI de Fransys ne transmet pas encore les variables au build :
- gardez ces valeurs dans votre code ou dans un fichier
.env.productiondu dépôt, si elles ne sont pas secrètes ; - ou lisez-les au démarrage, côté serveur.
Les autres variables (accès à la base, clés d’API) se règlent dans Variables, protégées si ce sont des secrets.
La base de données
Section intitulée « La base de données »Ajoutez une base PostgreSQL reliée à l’application, puis regardez dans Variables les noms reçus. Si votre ORM attend une seule URL (DATABASE_URL pour Prisma, par exemple), composez-la avec les références :
DATABASE_URL=postgresql://${USER}:${PASSWORD}@${HOST}:${PORT}/${DATABASE}en remplaçant chaque nom par celui de la variable reçue, et cochez Autoriser les références.
Les migrations
Section intitulée « Les migrations »Dans Commandes de déploiement, à Après la première installation et Après une mise à jour : par exemple npx prisma migrate deploy.
Plusieurs processus
Section intitulée « Plusieurs processus »Un worker (BullMQ, par exemple) : faites lire un rôle à votre point d’entrée, puis copiez le service avec ce rôle. Voir Application.