Retour à l'accueil

Installer et utiliser PostgreSQL et MongoDB par Docker

Publié le

Sur mon dépôt https://github.com/demers/docker-postgresql-pgadmin-mongo, je décris en détails comment j’ai réussi à installer PostgreSQL 14 et MongoDB dans des conteneurs Docker par un fichier docker-compose. L’objectif premier était d’avoir une installation facile et rapide de PostgreSQL accessible par l’interface Web PGAdmin 4 ou par le client PSQL. Une base de données NoSQL MongoDB est aussi disponible dans un conteneur.

Je me suis servi de cette configuration pour fournir des exercices et travaux pratiques à mes étudiants en informatique. Ils apprenaient le langage SQL compatible avec PostgreSQL et le langage NoSQL de MongoDB par un client MongoDB Compass.

Cette configuration m’a aussi permis de corriger automatiquement les travaux des étudiants par un script Bash qui…

Démarrait un serveur PostgreSQL par une commande comme suit:

docker-compose up -d

Exécutait des commandes SQL d’initialisation comme celle-ci:

docker exec -ti postgres psql -w -c "CREATE USER tp1user WITH PASSWORD '$PGPASSWORD';"

pour créer un utilisateur de la base de données pour accéder au serveur PostgreSQL.

docker exec -ti postgres psql -c 'CREATE DATABASE tp1a OWNER tp1user;' postgres admin

Cela crée une base de données accessible par le compte tp1user.

Exécutait les fichiers SQL des étudiants comme par exemple:

cat "$FICHIER_ETUDIANT" | docker exec -i postgres psql --echo-all tp1a tp1user 

Le $FICHIER_ETUDIANT est le lien vers le fichier SQL de l’étudiant.

Puisque la base de données est accessible par un ensemble de commandes, tout est possible pour configurer, lancer et récupérer les résultats d’exécution.