Table des matières

Dockeriser PostgreSQL pour Fastify + Prisma

Objectif :


1. Prérequis

Vérification :

docker --version
docker compose version


2. Créer docker-compose.yml

À la racine du projet :

version: "3.9"

services:
  postgres:
    image: postgres:15
    container_name: fastify_postgres
    restart: always
    environment:
      POSTGRES_USER: fastify
      POSTGRES_PASSWORD: fastifypassword
      POSTGRES_DB: fastifydb
    ports:
      - "5432:5432"
    volumes:
      - postgres_data:/var/lib/postgresql/data

  adminer:
    image: adminer
    container_name: fastify_adminer
    restart: always
    ports:
      - "8080:8080"

volumes:
  postgres_data:


3. Lancer PostgreSQL

docker compose up -d

Vérifier :

docker ps

Tu dois voir :


4. Configurer Prisma

Dans ton fichier `.env` :

DATABASE_URL="postgresql://fastify:fastifypassword@localhost:5432/fastifydb"

5. Lancer migration Prisma

npx prisma migrate dev --name init

Si tout est correct :


6. Accéder à la base (Adminer)

Navigateur :

http://localhost:8080

Paramètres :

⚠️ Important :

Si Adminer ne se connecte pas avec “localhost”, utiliser “postgres” comme nom de serveur.


7. Commandes utiles Docker

Arrêter les conteneurs :

docker compose down

Arrêter + supprimer volumes (supprime la base) :

docker compose down -v

Voir les logs :

docker compose logs

Redémarrer :

docker compose restart

8. Bonnes pratiques

Ne jamais commit :

Ajouter `.env` dans `.gitignore`.


9. Structure finale projet

fastify-prisma-api/
 ├── docker-compose.yml
 ├── .env
 ├── prisma/
 ├── src/