Préparez le déploiement en production avec Docker, Docker Compose et la configuration serveur.
Avant de mettre en production ton site e-commerce (Remix + Strapi 5), Docker et Docker Compose simplifient la gestion des dépendances, des variables d’environnement et des mises à l’échelle sous forme de conteneurs isolés.
Consulter la doc officielle de Docker et de
Docker Compose.
On va créer les éléments suivants :
1FROM node:18-alpine23# Définit le répertoire de travail4WORKDIR /usr/src/app56# Copie package.json et package-lock.json pour cacher les7# installations aux changements de code8COPY package.json package-lock.json ./910# Installe les dépendances11RUN npm ci --production1213# Copie le code source14COPY ./src ./src15COPY ./config ./config1617# Expose le port Strapi18EXPOSE 13371920# Lancement du serveur Strapi en production21CMD ["npm", "run", "start"]2223```docker remix/Dockerfile24FROM node:18-alpine2526WORKDIR /usr/src/app2728# Installe les dépendances29COPY package.json package-lock.json ./30RUN npm ci3132# Copie tout le code front33COPY . .3435# Compile le build Remix36RUN npm run build3738EXPOSE 30003940# Démarre le serveur Remix en mode production41CMD ["npm", "run", "start"]
1node_modules2dist3.build4.env5docker-compose.yml6Dockerfile*
1version: "3.8"23services:4strapi:5build:6context: .7dockerfile: Dockerfile.strapi8image: strapi-ecommerce:latest9restart: unless-stopped10env_file: .env11ports:12- "1337:1337"13volumes:14- ./config:/usr/src/app/config15- ./src:/usr/src/app/src16- ./public:/usr/src/app/public17depends_on:18- db1920db:21image: postgres:13-alpine22restart: unless-stopped23env_file: .env24volumes:25- strapi-db-data:/var/lib/postgresql/data2627remix:28build:29context: .30dockerfile: Dockerfile.remix31image: remix-ecommerce:latest32restart: unless-stopped33env_file: .env34ports:35- "3000:3000"36depends_on:37- strapi3839volumes:40strapi-db-data:
node:18-alpine
pour légèreté.npm ci --production
installe uniquement les dépendances utiles en prod.npm ci
) car on a besoin du compilateur.npm run build
génère le dossier .build
(ou build
) pour Remix.Se référer à la section « Build et distribution » de la doc Remix.
Limite les fichiers copiés dans le contexte Docker pour accélérer le build.
db
.Assure-toi que ton fichier .env
contient toutes les clés requises :
DATABASE_HOST, DATABASE_NAME, JWT_SECRET, STRAPI_URL, FRONTEND_URL, etc.
1docker-compose up -d
-d
: mode détachédocker ps
pour vérifier que tous les conteneurs tournent.1docker-compose logs -f strapi
NODE_ENV=production
) dans .env
.Tu peux scaler le nombre de conteneurs Remix :
docker-compose up --scale remix=3 -d
docker-compose.yml
pour ajouter un service Redis et configurer Strapimake build
qui exécute les builds Docker et pousseLiens utiles :