- Publié le
Comment conteneuriser presque n'importe quelle application Next.js
- Auteurs
- Nom
- Dmitry Bilichenko
Je ne sais pas vraiment pourquoi vous voudriez le faire, mais si vous le souhaitez...
Notre plan
- Installez Docker - https://www.docker.com/ (téléchargez pour votre système d'exploitation + quelques clics de souris)
- Créez une application Next.js - https://nextjs.org/ (dans n'importe quel terminal, exécutez
npx create-next-app@latest
)
Préparation à la conteneurisation
Tout d'abord, dans le répertoire racine de votre application Next (j'espère que vous avez déjà une application Next), vous devez créer un fichier Dockerfile portant le nom Dockerfile et y insérer les lignes suivantes :
# Étape de construction
FROM node:18-alpine AS BUILD_IMAGE
WORKDIR /app
COPY package*.json ./
RUN npm ci
COPY . .
RUN npm run build
# Étape de production
FROM node:18-alpine AS PRODUCTION_STAGE
WORKDIR /app
COPY /app/package*.json ./
COPY /app/.next ./.next
COPY /app/public ./public
COPY /app/node_modules ./node_modules
ENV NODE_ENV=production
EXPOSE 3000
CMD ["npm", "start"]
Conteneurisation
Dans n'importe quel terminal, accédez au dossier de votre application Next (en fait, vous devriez déjà être ici) et tapez
docker build -t my-great-app ./
cette commande créera une image Docker (c'est comme un système d'exploitation avec votre application) pour vous, et après cela, il ne vous reste qu'une étape à effectuer - exécutez votre image créée (système d'exploitation créé) dans un conteneur (c'est comme dans une machine virtuelle)
ERREUR
si quelque chose ne va pas et que vous rencontrez l'erreur "Fichier exécutable Docker-credential-desktop introuvable dans $PATH" dans le terminal, essayez simplement https://stackoverflow.com/a/65896682 et tout devrait être réparé.
Démarrage
docker run -p 3000:3000 my-great-app
Cette commande exécutera votre application sur http://localhost:3000
C'est tout !
Si tout fonctionne bien - bienvenue ! Sinon, discutons-en...