Comment configurer une base de données PostgreSQL avec Docker

Dans ce tutoriel, nous allons apprendre à configurer une base de données PostgreSQL à l’aide de Docker. Docker permet de créer des environnements isolés et reproductibles, ce qui est idéal pour le développement et le déploiement.

Avant de commencer

Assurez-vous d’avoir les éléments suivants installés sur votre machine :

  • Docker
  • Un éditeur de texte ou un IDE (comme VS Code)

Étape 1 : Créer un fichier docker-compose.yml

Créez un fichier nommé docker-compose.yml dans votre projet. Ajoutez le contenu suivant :

version: '3.8'

services:
  db:
    image: postgres:15
    container_name: postgres_db
    environment:
      POSTGRES_DB: myapp
      POSTGRES_USER: myuser
      POSTGRES_PASSWORD: mypassword
    ports:
      - "5432:5432"
    volumes:
      - postgres_data:/var/lib/postgresql/data
    restart: unless-stopped

volumes:
  postgres_data:

Étape 2 : Lancer le conteneur PostgreSQL

Ouvrez un terminal dans le répertoire contenant le fichier docker-compose.yml et exécutez la commande suivante :

docker-compose up -d

Cette commande lance PostgreSQL en arrière-plan. Vous pouvez vérifier que le conteneur est en cours d’exécution avec :

docker-compose ps

Étape 3 : Se connecter à la base de données

Vous pouvez vous connecter à la base de données PostgreSQL à l’aide de l’outil psql ou d’un client graphique comme DBeaver.

Utilisation de psql

Exécutez la commande suivante dans votre terminal :

docker exec -it postgres_db psql -U myuser -d myapp

Vous devriez voir un prompt myapp=>, indiquant que vous êtes connecté.

Utilisation d’un client graphique

  1. Ouvrez DBeaver.
  2. Cliquez sur New Database Connection.
  3. Sélectionnez PostgreSQL comme type de base de données.
  4. Remplissez les champs :
    • Host: localhost
    • Port: 5432
    • Database: myapp
    • Username: myuser
    • Password: mypassword
  5. Cliquez sur Test Connection pour vérifier que la connexion fonctionne.
  6. Cliquez sur Finish pour enregistrer la connexion.

Étape 4 : Créer une table de test

Une fois connecté, exécutez la commande SQL suivante pour créer une table de test :

CREATE TABLE test_table (
  id SERIAL PRIMARY KEY,
  name VARCHAR(100) NOT NULL,
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

Ajoutez quelques données :

INSERT INTO test_table (name) VALUES ('Alice'), ('Bob');

Vérifiez que les données ont été insérées :

SELECT * FROM test_table;

Nettoyage

Pour arrêter le conteneur PostgreSQL, exécutez :

docker-compose down

Pour supprimer les volumes persistants (attention, cela supprime toutes les données), utilisez :

docker-compose down -v

Conclusion

Vous avez maintenant configuré une base de données PostgreSQL avec Docker. Cette méthode est rapide, reproductible et idéale pour les projets de développement. Vous pouvez facilement partager ce fichier docker-compose.yml avec votre équipe pour garantir une configuration identique sur tous les environnements.

Pour en savoir plus, consultez la documentation officielle de PostgreSQL.


Publié le 15 mai 2024