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