Loading docker-compose.yml +15 −0 Original line number Diff line number Diff line version: '3.1' services: empty: build: context: . environment: RESOURCE_DIR: "docker/empty" POSTGRES_USER: postgres POSTGRES_PASSWORD: admin SYGAL_DB: sygal SYGAL_USER: ad_sygal SYGAL_PASSWORD: azerty ports: - "5632:5432" volumes: - /tmp/sygal-db/empty/db:/var/lib/postgresql/data # répertoire où la bdd est persistée dist: build: context: . Loading docker/empty/README.md 0 → 100644 +4 −0 Original line number Diff line number Diff line README ====== Ressources Docker pour une base de données **vide** (sans schéma ni données). docker/empty/initdb.sh 0 → 100644 +77 −0 Original line number Diff line number Diff line #!/bin/bash set -e SQL_DIR="/sql" ## ## Lancement des scripts SQL présents dans le répertoire `/sql`. ## echo "-------------------------------------------------------------------------------------------------------" echo " $0" echo "-------------------------------------------------------------------------------------------------------" unset PGHOST PGPORT PGDATABASE PGUSER PGPASSWORD # précaution [[ -z $POSTGRES_DB ]] && echo "Variable d'environnement POSTGRES_DB absente." && exit 1 [[ -z $POSTGRES_USER ]] && echo "Variable d'environnement POSTGRES_USER absente." && exit 1 [[ -z $POSTGRES_PASSWORD ]] && echo "Variable d'environnement POSTGRES_PASSWORD absente." && exit 1 [[ -z $SYGAL_DB ]] && echo "Variable d'environnement SYGAL_DB absente." && exit 1 [[ -z $SYGAL_USER ]] && echo "Variable d'environnement SYGAL_USER absente." && exit 1 [[ -z $SYGAL_PASSWORD ]] && echo "Variable d'environnement SYGAL_PASSWORD absente." && exit 1 echo "POSTGRES_DB = $POSTGRES_DB" echo "POSTGRES_USER = $POSTGRES_USER" echo "POSTGRES_PASSWORD = $POSTGRES_PASSWORD" echo "SYGAL_DB = $SYGAL_DB" echo "SYGAL_USER = $SYGAL_USER" echo "SYGAL_PASSWORD = $SYGAL_PASSWORD" # # Exécution EN TANT QUE SUPER-USER de tous les scripts .sql présents dans le répertoire `/sql/01_admin`. # NB : il est possible de substituer ces scripts par les vôtres grâce à un volume à monter dans `/sql/01_admin`. # if [ -d "${SQL_DIR}/01_admin" ]; then cd "${SQL_DIR}/01_admin" export \ PGDATABASE=${POSTGRES_DB} \ PGUSER=${POSTGRES_USER} \ PGPASSWORD=${POSTGRES_PASSWORD} for f in *.sql; do [[ ! -f "$f" ]] && continue echo "--------------------------------------- $f ----------------------------------------" psql \ -v ON_ERROR_STOP=1 \ -v dbname=${SYGAL_DB} \ -v dbuser=${SYGAL_USER} \ -v dbpassword="'${SYGAL_PASSWORD}'" \ -f $f [[ $? -ne 0 ]] && exit 1 done fi echo # # Exécution de tous les scripts .sql présents dans le répertoire `/sql/02_other`. # NB : il est possible de substituer ces scripts par les vôtres grâce à un volume à monter dans `/sql/02_other`. # if [ -d "${SQL_DIR}/02_other" ]; then cd "${SQL_DIR}/02_other" export \ PGDATABASE=${SYGAL_DB} \ PGUSER=${SYGAL_USER} \ PGPASSWORD="'${SYGAL_PASSWORD}'" for f in *.sql; do [[ ! -f "$f" ]] && continue echo "--------------------------------------- $f ----------------------------------------" psql \ -v ON_ERROR_STOP=1 \ -v dbuser=${SYGAL_USER} \ -f $f [[ $? -ne 0 ]] && exit 1 done fi unset PGHOST PGPORT PGDATABASE PGUSER PGPASSWORD # précaution docker/empty/sql/01_admin/01_create_db_user.sql 0 → 100644 +8 −0 Original line number Diff line number Diff line -- -- DATABASE, USER, ETC. -- create database :dbname with ENCODING = 'UTF-8'; create user :dbuser with encrypted password :dbpassword NOSUPERUSER NOCREATEDB; alter database :dbname owner to :dbuser; grant all privileges on database :dbname to :dbuser; Loading
docker-compose.yml +15 −0 Original line number Diff line number Diff line version: '3.1' services: empty: build: context: . environment: RESOURCE_DIR: "docker/empty" POSTGRES_USER: postgres POSTGRES_PASSWORD: admin SYGAL_DB: sygal SYGAL_USER: ad_sygal SYGAL_PASSWORD: azerty ports: - "5632:5432" volumes: - /tmp/sygal-db/empty/db:/var/lib/postgresql/data # répertoire où la bdd est persistée dist: build: context: . Loading
docker/empty/README.md 0 → 100644 +4 −0 Original line number Diff line number Diff line README ====== Ressources Docker pour une base de données **vide** (sans schéma ni données).
docker/empty/initdb.sh 0 → 100644 +77 −0 Original line number Diff line number Diff line #!/bin/bash set -e SQL_DIR="/sql" ## ## Lancement des scripts SQL présents dans le répertoire `/sql`. ## echo "-------------------------------------------------------------------------------------------------------" echo " $0" echo "-------------------------------------------------------------------------------------------------------" unset PGHOST PGPORT PGDATABASE PGUSER PGPASSWORD # précaution [[ -z $POSTGRES_DB ]] && echo "Variable d'environnement POSTGRES_DB absente." && exit 1 [[ -z $POSTGRES_USER ]] && echo "Variable d'environnement POSTGRES_USER absente." && exit 1 [[ -z $POSTGRES_PASSWORD ]] && echo "Variable d'environnement POSTGRES_PASSWORD absente." && exit 1 [[ -z $SYGAL_DB ]] && echo "Variable d'environnement SYGAL_DB absente." && exit 1 [[ -z $SYGAL_USER ]] && echo "Variable d'environnement SYGAL_USER absente." && exit 1 [[ -z $SYGAL_PASSWORD ]] && echo "Variable d'environnement SYGAL_PASSWORD absente." && exit 1 echo "POSTGRES_DB = $POSTGRES_DB" echo "POSTGRES_USER = $POSTGRES_USER" echo "POSTGRES_PASSWORD = $POSTGRES_PASSWORD" echo "SYGAL_DB = $SYGAL_DB" echo "SYGAL_USER = $SYGAL_USER" echo "SYGAL_PASSWORD = $SYGAL_PASSWORD" # # Exécution EN TANT QUE SUPER-USER de tous les scripts .sql présents dans le répertoire `/sql/01_admin`. # NB : il est possible de substituer ces scripts par les vôtres grâce à un volume à monter dans `/sql/01_admin`. # if [ -d "${SQL_DIR}/01_admin" ]; then cd "${SQL_DIR}/01_admin" export \ PGDATABASE=${POSTGRES_DB} \ PGUSER=${POSTGRES_USER} \ PGPASSWORD=${POSTGRES_PASSWORD} for f in *.sql; do [[ ! -f "$f" ]] && continue echo "--------------------------------------- $f ----------------------------------------" psql \ -v ON_ERROR_STOP=1 \ -v dbname=${SYGAL_DB} \ -v dbuser=${SYGAL_USER} \ -v dbpassword="'${SYGAL_PASSWORD}'" \ -f $f [[ $? -ne 0 ]] && exit 1 done fi echo # # Exécution de tous les scripts .sql présents dans le répertoire `/sql/02_other`. # NB : il est possible de substituer ces scripts par les vôtres grâce à un volume à monter dans `/sql/02_other`. # if [ -d "${SQL_DIR}/02_other" ]; then cd "${SQL_DIR}/02_other" export \ PGDATABASE=${SYGAL_DB} \ PGUSER=${SYGAL_USER} \ PGPASSWORD="'${SYGAL_PASSWORD}'" for f in *.sql; do [[ ! -f "$f" ]] && continue echo "--------------------------------------- $f ----------------------------------------" psql \ -v ON_ERROR_STOP=1 \ -v dbuser=${SYGAL_USER} \ -f $f [[ $? -ne 0 ]] && exit 1 done fi unset PGHOST PGPORT PGDATABASE PGUSER PGPASSWORD # précaution
docker/empty/sql/01_admin/01_create_db_user.sql 0 → 100644 +8 −0 Original line number Diff line number Diff line -- -- DATABASE, USER, ETC. -- create database :dbname with ENCODING = 'UTF-8'; create user :dbuser with encrypted password :dbpassword NOSUPERUSER NOCREATEDB; alter database :dbname owner to :dbuser; grant all privileges on database :dbname to :dbuser;