Dockeriser PostgreSQL pour Fastify + Prisma
Objectif :
- Lancer PostgreSQL avec Docker
- Connecter Prisma dessus
- Pouvoir administrer la base facilement
1. Prérequis
- Docker installé
- Docker Compose (inclus dans Docker Desktop)
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 :
- fastify_postgres
- fastify_adminer
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 :
- Connexion réussie
- Tables créées
6. Accéder à la base (Adminer)
Navigateur :
Paramètres :
- Système : PostgreSQL
- Serveur : postgres
- Utilisateur : fastify
- Mot de passe : fastifypassword
- Base : fastifydb
⚠️ 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 :
- .env
- données sensibles
Ajouter `.env` dans `.gitignore`.
9. Structure finale projet
fastify-prisma-api/ ├── docker-compose.yml ├── .env ├── prisma/ ├── src/