Au lieu d’installer l’application sur votre système, il est possible de l’embarquer dans un container Docker, qui vous permettra de faire fonctionner le code plus facilement.
$ docker compose --profile=django up
Se placer dans le container itou_django
avec :
make shell_on_django_container
Dans cet interpréteur, il est possible d’utiliser les commandes python manage.py <…>
et make <…>
.
Se placer dans le container itou_postgres
avec :
make shell_on_postgres_container
Dans cet interpréteur, les utilitaires PostgreSQL tels que psql
, pg_dump
,
pg_restore
sont disponibles.
Le code applicatif est monté directement dans le docker, ce qui permet de refléter les modifications du code source effectuées sur l’hôte dans le container. Le serveur de développement se recharge automatiquement lors des changements.
Pour transmettre d’autres fichiers, utiliser la commande docker cp
depuis la
machine hôte :
$ docker cp backups/2023-09-12.dump itou_postgres:/backups/
Dans le container itou_django
, lancer la commande :
make venv
Pour supprimer la base de données dans Docker vous devez supprimer les volumes de l'image docker, en exécutant la commande suivante :
docker compose --profile=django down --volumes
Pour utiliser un débogueur
interactif
type ipdb
:
$ docker compose --profile=django run --service-ports django
Les variables d’environnement suivantes vous permettent de personnaliser le
fonctionnement du docker compose
. Vous pouvez les enregistrer dans un fichier
.env
à la racine du projet (dans le même répertoire que le fichier
README.md).
DJANGO_PORT_ON_DOCKER_HOST=8000
POSTGRES_PORT_ON_DOCKER_HOST=5432
MINIO_PORT_ON_DOCKER_HOST=9000
MINIO_ADMIN_PORT_ON_DOCKER_HOST=9001
# Needed for the ./scripts/restore_latest_backup.sh script.
# Path to your local itou-backups repository.
PATH_TO_ITOU_BACKUPS=set_me