SyGAL Database Image
Ce projet est une image Docker rassemblant le nécessaire pour créer (le cas échéant) et lancer une base de données pour l'application ESUP-SyGAL.
Pour une bdd neuve (dist)
Mise à jour (facultative)
Pour récupérer dans les sources de SyGAL la dernière version des scripts SQL de création d'un bdd neuve et les copier ici, lancer cette commande :
./docker/update_dist.sh -g https://git.unicaen.fr/open-source/sygal.git
N'oubliez pas de mettre à jour le dépôt si névessaire :
git add . && git commit -m "Mise à jour des scripts de création d'une bdd neuve." && git push
Build de l'image
docker compose build sygal-db-dist
Attention ! Si vous êtes derrière un proxy, vous pouvez transmettre les valeurs courantes de vos variables d'environement *_proxy
à la commande build
avec des --build-arg
additionnels.
Lancement
docker compose up sygal-db-dist
ou alors
docker run \
--rm \
--env POSTGRES_USER=postgres \
--env POSTGRES_PASSWORD=admin \
--env SYGAL_DB=sygal \
--env SYGAL_USER=ad_sygal \
--env SYGAL_PASSWORD=azerty \
--publish 5432:5432 \
--volume $PWD/docker/dist/sql/:/sql \
--volume $PWD/docker/dist/db:/var/lib/postgresql/data \
sygal-db-dist
Remarques :
- Les variables d'environnement
POSTGRES_*
spécifient le super-utilisateur à créer (cf. https://registry.hub.docker.com/_/postgres). - Les variables d'environnement
SYGAL_*
spécifient la base de données et l'utilisateur SyGAL à créer. - Le montage
$PWD/data/db:/var/lib/postgresql/data
permet de spécifier un répertoire dans lequel sera persistée la base de données. Si aucune base n'est déjà persistée, le script/initdb.sh
est lancé automatiquement au démarrage du container pour exécuter les scripts SQL situés dans le répertoire/sql
:- Pour commencer, ce sont les scripts SQL placés dans le sous-répertoire
admin
qui sont exécutés avec le super-user identifié par les variables d'environnementPOSTGRES_USER
etPOSTGRES_PASSWORD
. - Ce sont ensuite les autres scripts qui sont exécutés avec le user identifié par les variables d'environnement
SYGAL_USER
etSYGAL_PASSWORD
.
- Pour commencer, ce sont les scripts SQL placés dans le sous-répertoire
- Vous pouvez substituer les scripts SQL par les vôtres en remplaçant le montage dans
/sql
(exemple :--volume $PWD/mes/scripts/sql/:/sql
). La présence d'un sous-répertoireadmin
n'est pas obligatoire.
docker-compose.yml
Utilisation de l'image dans un L'image doit avoir été buildée au préalable.
version: '2.2'
services:
sygal-db-dist:
image: sygal-db-dist
restart: always
environment:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: admin
SYGAL_DB: sygal
SYGAL_USER: ad_sygal
SYGAL_PASSWORD: azerty
ports:
- "5432:5432"
volumes:
- ./mon/emplacement/db:/var/lib/postgresql/data # répertoire où la bdd est persistée
Pour une bdd de démo
Mise à jour (facultative)
Build
docker build \
--rm \
-t sygal-db-demo \
.
Lancement
docker compose up sygal-db-demo
ou alors
docker run \
--rm \
--env POSTGRES_USER=postgres \
--env POSTGRES_PASSWORD=admin \
--env SYGAL_DB=sygal_demo \
--env SYGAL_USER=ad_sygal_demo \
--env SYGAL_PASSWORD=azerty \
--publish 5432:5432 \
--volume $PWD/docker/demo/sql/:/sql \
--volume $PWD/docker/demo/db:/var/lib/postgresql/data \
sygal-db-demo
docker-compose.yml
Utilisation de l'image dans un L'image doit avoir été buildée au préalable.
version: '2.2'
services:
sygal-db-demo:
image: sygal-db-demo
restart: always
environment:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: admin
SYGAL_DB: sygal_demo
SYGAL_USER: ad_sygal_demo
SYGAL_PASSWORD: azerty
ports:
- "5432:5432"
volumes:
- ./mon/emplacement/db:/var/lib/postgresql/data # répertoire où la bdd est persistée