Last active
February 7, 2025 11:51
-
-
Save SamuelChojnacki/9e51946e92234f86ac1665c607d10cd3 to your computer and use it in GitHub Desktop.
Strapi v5 Dockerfile
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
## 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