Skip to content

Instantly share code, notes, and snippets.

@SamuelChojnacki
Last active February 7, 2025 11:51
Show Gist options
  • Save SamuelChojnacki/9e51946e92234f86ac1665c607d10cd3 to your computer and use it in GitHub Desktop.
Save SamuelChojnacki/9e51946e92234f86ac1665c607d10cd3 to your computer and use it in GitHub Desktop.
Strapi v5 Dockerfile
## Production :
# Étape 1 : Construction
FROM node:20.11.1-alpine3.19 AS builder
# Définir le répertoire de travail
WORKDIR /opt/app
# Copier les fichiers nécessaires pour installer les dépendances
COPY package.json yarn.lock ./
# Installer node-gyp et les dépendances nécessaires
RUN yarn global add node-gyp && yarn config set network-timeout 600000 -g && yarn install
# Copier le reste des fichiers du projet
COPY . .
# Construire l'application
RUN yarn build
# Étape 2 : Image finale
FROM node:18.16.0-alpine
# Installer les dépendances nécessaires pour exécuter l'application
RUN apk update && apk add --no-cache vips-dev && \
rm -rf /var/cache/apk/*
# Définir le répertoire de travail
WORKDIR /opt/app
# Copier les fichiers nécessaires depuis l'étape de construction
COPY --from=builder /opt/app .
COPY --from=builder /opt/app/node_modules ./node_modules
# Ajouter un volume pour la Media Library
VOLUME /opt/app/public/uploads
# Définir le port d'exposition
EXPOSE 1337
# Lancer l'application
CMD ["yarn", "start"]
## Developement :
# Étape 1 : Base pour l'environnement de développement
FROM node:18-alpine AS dev
# Définir le répertoire de travail
WORKDIR /opt/app
# Copier uniquement les fichiers de dépendances pour optimiser le cache
COPY package.json yarn.lock ./
# Installer node-gyp et les dépendances nécessaires
RUN yarn config set network-timeout 600000 -g && yarn install
# Étape 2 : Image finale avec hot reload
FROM node:18-alpine
# Installer les dépendances nécessaires pour exécuter l'application
RUN apk update && apk add --no-cache vips-dev && \
rm -rf /var/cache/apk/*
# Définir le répertoire de travail
WORKDIR /opt/app
# Copier les dépendances installées de l'étape précédente
COPY --from=dev /opt/app/node_modules ./node_modules
# Monter le code source depuis l'hôte pour le mode développement
VOLUME /opt/app
# Définir le port d'exposition
EXPOSE 1337
# Lancer Strapi en mode développement avec hot reload
CMD ["yarn", "develop"]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment