SyGAL Database Image
Ce projet est une image Docker rassemblant le nécessaire pour créer (le cas échéant) et de lancer une base de données pour l'application ESUP-SyGAL.
Lancement de la base de données
docker-compose
Sans 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/sql/:/sql \
--volume $PWD/data/db:/var/lib/postgresql/data \
sygal-db-image
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
Avec Si vous utilisez docker-compose
, les variables d'environnement POSTGRES_*
et SYGAL_*
sont spécifiées "en dur" dans le fichier docker-compose.yml
.
docker-compose up
docker-compose.yml
Utilisation de l'image dans un version: '2.2'
services:
sygal-db:
image: sygal-db
container_name: sygal-db-container
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/sql/:/sql # répertoire des scripts de création de la bdd
- ./mon/emplacement/db:/var/lib/postgresql/data # répertoire où la bdd est persistée
Build de l'image
- Facultatif : vous pouvez éventuellement récupérer les dernières versions des scripts SQL comme ceci :
./update_sql.sh
NB : Ce script se termine par un git status permettant de connaître les scripts SQL ayant changé.
- Build
docker build \
--rm \
-t sygal-db-image \
.
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.