Skip to content
Snippets Groups Projects
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
No related branches found
No related tags found
No related merge requests found
Pipeline #10201 passed
......@@ -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
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment