🐳 Module 51
4

Mettre en place Docker pour PrestaShop : les bases techniques

Leçon 4 / 5 — 2h

« L'architecture est la volonté d'une époque traduite dans l'espace. »

L

Ludwig Mies van der Rohe

L'Architecte · 1886-1969

Les prérequis avant de commencer

Avant de conteneuriser votre PrestaShop, vous devez disposer d'un VPS dédié (minimum 4 Go RAM, 2 vCPUs) sous Ubuntu 22.04 LTS ou Debian 12. Les hébergements mutualisés ne supportent pas Docker. C'est un investissement de 15 à 30 €/mois selon votre trafic — largement compensé par les économies de maintenance.

La stack recommandée

Pour un PrestaShop en production, voici la stack Docker éprouvée :

  • Nginx : reverse proxy et serveur de fichiers statiques
  • PHP-FPM 8.1 : moteur PHP isolé pour PrestaShop
  • MariaDB 10.11 : base de données relationnelle
  • Redis 7 : cache de sessions et de pages

Chaque service tourne dans son propre conteneur, communique via un réseau Docker interne, et expose uniquement les ports nécessaires vers l'extérieur.

Structure d'un docker-compose.yml minimal

services:\n  nginx:\n    image: nginx:alpine\n    ports:\n      - "443:443"\n    volumes:\n      - ./prestashop:/var/www/html:ro\n      - ./nginx/default.conf:/etc/nginx/conf.d/default.conf\n\n  php:\n    image: php:8.1-fpm\n    volumes:\n      - ./prestashop:/var/www/html\n\n  mariadb:\n    image: mariadb:10.11\n    environment:\n      MYSQL_DATABASE: prestashop\n      MYSQL_USER: ps_user\n      MYSQL_PASSWORD: ${DB_PASSWORD}\n    volumes:\n      - mariadb_data:/var/lib/mysql\n\nvolumes:\n  mariadb_data:

Les erreurs classiques à éviter

Sur le terrain, trois erreurs reviennent systématiquement :

  • Stocker les données dans le conteneur : si votre base de données n'est pas montée sur un volume, vous perdez toutes vos données au prochain docker compose down. Toujours déclarer un volume nommé pour MariaDB.
  • Exposer le port 3306 de MariaDB : votre base de données ne doit jamais être accessible depuis l'extérieur. La communication entre PHP et MariaDB se fait via le réseau Docker interne.
  • Utiliser le tag latest : spécifiez toujours une version précise (mariadb:10.11, pas mariadb:latest). Le tag latest peut changer sans préavis et casser votre stack au prochain rebuild.

A retenir : Commencez par conteneuriser votre environnement de développement local — une fois que votre <code>docker-compose.yml</code> fonctionne en local, la migration en production est une formalité.

Questions & Answers

A question about this lesson? The AI replies automatically.

Your questions and the AI's answers are public and enrich the course for everyone. Your email is used only for authentication (legal basis: legitimate interest, retention: 3 years). Privacy policy.

Verified reviews

Nos clients parlent de nous

5.0 / 5

33 client reviews

Nous travaillons avec Alexandre depuis quelques mois et sommes ravis de son a

Nous travaillons avec Alexandre depuis quelques mois et sommes ravis de son accompagnement. Alexandre comprend parfaitement les enjeux et problématiques liés à notre activité et parvient, en réponse, à nous apporter des solutions techniques et fonctionnelles en respectant coûts et délais.

Office

MONOGRAM

Malt

La résolution de mes problèmes à été rapide et efficace, je recommande :)

La résolution de mes problèmes à été rapide et efficace, je recommande :).

Marine

MES-Distribution

Malt

Super

Super

Jl

Kaigan

Malt

Au Top

Au Top. tout simplement

Elite Cbd

Canna Elite Europe Ltd

Malt

Configuration d''un VPS et migration réalisée avec succès, bons conseils, dia

Configuration d'un VPS et migration réalisée avec succès, bons conseils, diagnostique rapide et efficace de nos problèmes. Je recommande.

Lorie

GRIIN outdoor

Malt

Toujours aussi clair et clairvoyant

Toujours aussi clair et clairvoyant... ;) Un plaisir de travailler avec Alexandre

Elite Cbd

Canna Elite Europe Ltd

Malt