Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
open-source
docker
sygal-db-image
Commits
93d3f714
Commit
93d3f714
authored
Jul 05, 2021
by
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
Changes
3
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
README.md
View file @
93d3f714
...
...
@@ -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:
- ./d
ata/db:/var/lib/postgresql/data
- ./d
ocker/db/sql/:/sql
- ./d
ocker/db/sql/:/sql # répertoire des scripts de création de la bdd
- ./d
ata/db:/var/lib/postgresql/data # répertoire de où la bdd est persistée
```
docker-compose.yml
View file @
93d3f714
...
...
@@ -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
docker/init_user_db.sh
View file @
93d3f714
...
...
@@ -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
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment