Docker & PostgreSQL
Faire tourner l'application Django dans un conteneur Docker et la relier à une base PostgreSQL.
Créer une image Docker
Au niveau de manage.py, créer un fichier Dockerfile. Créer aussi un fichier .dockerignore.
Construire l'image :
Création du fichier docker-compose.yml au niveau du Dockerfile :
Application isolée
Notre serveur Django s'exécute dans un conteneur Docker autonome.
Pour arrêter le conteneur :
Ctrl-cdocker compose down
Créer la base de données PostgreSQL
Psycopg est l'adaptateur de PostgreSQL. Rajouter dans requirements.txt :
Création d'un conteneur db pour notre base de données PostgreSQL.
Le webservice dépend du service de base de données à exécuter : ajouter une ligne appelée depends_on pour le signifier.
Mettre à jour la base de données dans settings.py au niveau de DATABASE.
S'assurer que les tables Django par défaut ont été créées :
Pour faire tourner les deux conteneurs en mode détaché avec une seule commande :
Pour afficher les images qui tournent :
Forcer l'arrêt de tous les conteneurs puis supprimer toutes les images :
Utilisation de PostgreSQL
Vérifier qu'un conteneur est en route :
Se connecter en root à PostgreSQL sur ligne de commande :
Pour accéder à PostgreSQL :
Commandes utiles :
\conninfo # Affiche l'état de la connexion.
\l # Liste les bases de données.
\dt # Liste les tables.
\q # Quitte psql.
Accéder aux éléments d'une table de la base de données :
Arrêter le conteneur avant de le supprimer :