Commit 93d3f714 authored by Bertrand Gauthier's avatar Bertrand Gauthier
Browse files

Passage du nom de la bdd, du user et du password via des variables d'environnement

parent f2a96da3
Pipeline #10201 passed with stage
in 16 seconds
......@@ -2,9 +2,10 @@
## Script `docker/init_user_db.sh`
Ce script est monté pour être lancé automatiquement au démarrage du container pour...
- créer une base de données `sygal`,
- créer le user `ad_sygal`,
Ce script est lancé automatiquement au démarrage du container pour...
- créer une base de données dont le nom est fourni par la variable d'environnement `SYGAL_DB` ;
- créer un user dont le nom est fourni par la variable d'environnement `SYGAL_USER`,
et le mot de passe par la variable `SYGAL_PASSWORD` ;
- lancer tous les scripts .sql présents dans le répertoire `/sql` de l'image.
## Répertoire `docker/sql` =>
......@@ -44,6 +45,9 @@ Exemple :
docker run \
--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/data/db:/var/lib/postgresql/data \
--name sygal-db-container \
......@@ -51,7 +55,7 @@ sygal-db-image
```
Remarques :
- Le montage `./data/db:/var/lib/postgresql/data` permet de persister la base de données.
- Le montage `$PWD/data/db:/var/lib/postgresql/data` permet de persister la base de données.
- Si vous voulez substituer les scripts SQL de création/peuplement des objets de la base de données par les vôtres,
ajoutez un montage du genre `--volume $PWD/mes/scripts/sql/:/sql`.
......@@ -67,9 +71,12 @@ services:
environment:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: admin
SYGAL_DB: sygal
SYGAL_USER: ad_sygal
SYGAL_PASSWORD: azerty
ports:
- 5432:5432
volumes:
- ./data/db:/var/lib/postgresql/data
- ./docker/db/sql/:/sql
- ./docker/db/sql/:/sql # répertoire des scripts de création de la bdd
- ./data/db:/var/lib/postgresql/data # répertoire de où la bdd est persistée
```
......@@ -10,7 +10,11 @@ services:
#POSTGRES_DB: postgres
POSTGRES_USER: postgres
POSTGRES_PASSWORD: admin
SYGAL_DB: sygal
SYGAL_USER: ad_sygal
SYGAL_PASSWORD: azerty
ports:
- 5432:5432
volumes:
- ./data/db:/var/lib/postgresql/data
#- ./docker/db/sql/:/sql # répertoire des scripts de création de la bdd
- ./data/db:/var/lib/postgresql/data # répertoire de où la bdd est persistée
......@@ -3,6 +3,10 @@ set -e
unset PGHOST PGPORT PGDATABASE PGUSER PGPASSWORD # précaution
#echo "SYGAL_DB = $SYGAL_DB"
#echo "SYGAL_USER = $SYGAL_USER"
#echo "SYGAL_PASSWORD = $SYGAL_PASSWORD"
#
# Création de la base 'sygal' et du user 'ad_sygal'.
#
......@@ -11,9 +15,9 @@ export \
PGUSER=$POSTGRES_USER \
ON_ERROR_STOP=1
psql <<EOF
create database sygal with ENCODING = 'UTF-8';
create user ad_sygal with encrypted password 'azerty' NOSUPERUSER NOCREATEDB;
grant all privileges on database sygal to ad_sygal;
create database $SYGAL_DB with ENCODING = 'UTF-8';
create user $SYGAL_USER with encrypted password '$SYGAL_PASSWORD' NOSUPERUSER NOCREATEDB;
grant all privileges on database $SYGAL_DB to $SYGAL_USER;
EOF
#
......@@ -21,9 +25,9 @@ EOF
# NB : il est possible de substituer ces scripts par les vôtres grâce à un volume monter dans `/sql`.
#
export \
PGDATABASE=sygal \
PGUSER=ad_sygal \
PGPASSWORD=azerty
PGDATABASE=$SYGAL_DB \
PGUSER=$SYGAL_USER \
PGPASSWORD=$SYGAL_PASSWORD
psql <<EOF
CREATE EXTENSION unaccent WITH SCHEMA public;
COMMENT ON EXTENSION unaccent IS 'text search dictionary that removes accents';
......@@ -31,7 +35,7 @@ EOF
#
# Exécution de tous les scripts .sql présents dans le répertoire `/sql`
# pour créer/peupler les objets de la base 'sygal'.
# NB : il est possible de substituer ces scripts par les vôtres grâce à un volume monter dans `/sql`.
# NB : il est possible de substituer ces scripts par les vôtres grâce à un volume à monter dans `/sql`.
#
cd /sql
for f in *.sql; do
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment