Loading .dockerignore 0 → 100644 +1 −0 Original line number Diff line number Diff line data/ Dockerfile +5 −2 Original line number Diff line number Diff line Loading @@ -10,8 +10,11 @@ RUN localedef -i fr_FR -c -f UTF-8 -A /usr/share/locale/locale.alias fr_FR.UTF-8 ENV LANG fr_FR.utf8 # Script d'initialisation de la bdd, lancé automatiquement (ssi le répertoire `data/db` est vide). # Copie du script de création de la base 'sygal' et du user 'ad_sygal' # (lancé automatiquement ssi le répertoire de persistance de la base de données est vide). COPY docker/init_user_db.sh /docker-entrypoint-initdb.d/ # Copie des scripts SQL de création de la bdd, lancés par le script `init_user_db.sh`. # Copie des scripts SQL de création des objets de la base de données 'sygal' # (le script `init_user_db.sh` lancera tous les scripts .sql présents dans `/sql`). # NB : il est possible de substituer ces scripts par les vôtres grâce à un volume. COPY docker/sql/*.sql /sql/ README.md +18 −5 Original line number Diff line number Diff line # Sygal Db Image ## Construction de l'image (build) ## 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`, - lancer tous les scripts .sql présents dans le répertoire `/sql` de l'image. ## Répertoire `docker/sql` => Construisez l'image pour la version de PHP désirée... Il contient les scripts SQL ordonnés pour la création et le peuplement des objets de la base de données 'sygal', lancés par le script `docker/init_user_db.sh`. Si vous voulez substituer ces scripts SQL par les vôtres, vous pouvez spécifier un montage du genre `--volume $PWD/mes/scripts/sql/:/sql` au lancement du container. ## Construction de l'image (build) ```bash docker build \ Loading Loading @@ -33,15 +46,14 @@ docker run \ --env POSTGRES_PASSWORD=admin \ --publish 5432:5432 \ --volume $PWD/data/db:/var/lib/postgresql/data \ --volume $PWD/docker/db/sql/:/sql \ --name sygal-db-container \ sygal-db-image ``` Remarques : - Le montage `./data/db:/var/lib/postgresql/data` permet de persister la base de données. - Le montage `./docker/db/sql/:/sql` vous permet de remplacer les scripts SQL de création/peuplement des objets de la base de données par les vôtres le cas échéant. - 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`. ## Utilisation dans un `docker-compose.yml` Loading @@ -53,6 +65,7 @@ services: container_name: sygal-db-container restart: always environment: POSTGRES_USER: postgres POSTGRES_PASSWORD: admin ports: - 5432:5432 Loading docker/init_user_db.sh +25 −13 Original line number Diff line number Diff line #!/bin/bash set -e cd /sql # volume unset PGHOST PGPORT PGDATABASE PGUSER PGPASSWORD # précaution # # Création de la base 'sygal' et du user 'ad_sygal'. # export \ PGDATABASE=$POSTGRES_DB \ 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; EOF psql -f 01_create_db_user.sql psql -c "alter user ad_sygal with encrypted password 'azerty'" # # Création d'objets divers dans la base 'sygal'. # 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 psql -f 02_create_schema.sql psql -f 03_insert_bootstrap_data.sql psql -f 04_insert_data.sql psql -f 05_create_constraints.sql psql -f 06_create_comue.sql psql -f 07_init.sql psql -f 08_create_fixture.sql psql <<EOF CREATE EXTENSION unaccent WITH SCHEMA public; COMMENT ON EXTENSION unaccent IS 'text search dictionary that removes accents'; 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`. # cd /sql for f in *.sql; do psql -f $f done unset PGHOST PGPORT PGDATABASE PGUSER PGPASSWORD # précaution docker/sql/01_create_db_user.sqldeleted 100644 → 0 +0 −10 Original line number Diff line number Diff line -- -- DATABASE, USER, ETC. -- -- Databases create database sygal with ENCODING = 'UTF-8'; -- Users create user ad_sygal with encrypted password 'MOT_DE_PASSE_PAR_DEFAUT' NOSUPERUSER NOCREATEDB; -- Grants grant all privileges on database sygal to ad_sygal; Loading
Dockerfile +5 −2 Original line number Diff line number Diff line Loading @@ -10,8 +10,11 @@ RUN localedef -i fr_FR -c -f UTF-8 -A /usr/share/locale/locale.alias fr_FR.UTF-8 ENV LANG fr_FR.utf8 # Script d'initialisation de la bdd, lancé automatiquement (ssi le répertoire `data/db` est vide). # Copie du script de création de la base 'sygal' et du user 'ad_sygal' # (lancé automatiquement ssi le répertoire de persistance de la base de données est vide). COPY docker/init_user_db.sh /docker-entrypoint-initdb.d/ # Copie des scripts SQL de création de la bdd, lancés par le script `init_user_db.sh`. # Copie des scripts SQL de création des objets de la base de données 'sygal' # (le script `init_user_db.sh` lancera tous les scripts .sql présents dans `/sql`). # NB : il est possible de substituer ces scripts par les vôtres grâce à un volume. COPY docker/sql/*.sql /sql/
README.md +18 −5 Original line number Diff line number Diff line # Sygal Db Image ## Construction de l'image (build) ## 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`, - lancer tous les scripts .sql présents dans le répertoire `/sql` de l'image. ## Répertoire `docker/sql` => Construisez l'image pour la version de PHP désirée... Il contient les scripts SQL ordonnés pour la création et le peuplement des objets de la base de données 'sygal', lancés par le script `docker/init_user_db.sh`. Si vous voulez substituer ces scripts SQL par les vôtres, vous pouvez spécifier un montage du genre `--volume $PWD/mes/scripts/sql/:/sql` au lancement du container. ## Construction de l'image (build) ```bash docker build \ Loading Loading @@ -33,15 +46,14 @@ docker run \ --env POSTGRES_PASSWORD=admin \ --publish 5432:5432 \ --volume $PWD/data/db:/var/lib/postgresql/data \ --volume $PWD/docker/db/sql/:/sql \ --name sygal-db-container \ sygal-db-image ``` Remarques : - Le montage `./data/db:/var/lib/postgresql/data` permet de persister la base de données. - Le montage `./docker/db/sql/:/sql` vous permet de remplacer les scripts SQL de création/peuplement des objets de la base de données par les vôtres le cas échéant. - 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`. ## Utilisation dans un `docker-compose.yml` Loading @@ -53,6 +65,7 @@ services: container_name: sygal-db-container restart: always environment: POSTGRES_USER: postgres POSTGRES_PASSWORD: admin ports: - 5432:5432 Loading
docker/init_user_db.sh +25 −13 Original line number Diff line number Diff line #!/bin/bash set -e cd /sql # volume unset PGHOST PGPORT PGDATABASE PGUSER PGPASSWORD # précaution # # Création de la base 'sygal' et du user 'ad_sygal'. # export \ PGDATABASE=$POSTGRES_DB \ 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; EOF psql -f 01_create_db_user.sql psql -c "alter user ad_sygal with encrypted password 'azerty'" # # Création d'objets divers dans la base 'sygal'. # 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 psql -f 02_create_schema.sql psql -f 03_insert_bootstrap_data.sql psql -f 04_insert_data.sql psql -f 05_create_constraints.sql psql -f 06_create_comue.sql psql -f 07_init.sql psql -f 08_create_fixture.sql psql <<EOF CREATE EXTENSION unaccent WITH SCHEMA public; COMMENT ON EXTENSION unaccent IS 'text search dictionary that removes accents'; 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`. # cd /sql for f in *.sql; do psql -f $f done unset PGHOST PGPORT PGDATABASE PGUSER PGPASSWORD # précaution
docker/sql/01_create_db_user.sqldeleted 100644 → 0 +0 −10 Original line number Diff line number Diff line -- -- DATABASE, USER, ETC. -- -- Databases create database sygal with ENCODING = 'UTF-8'; -- Users create user ad_sygal with encrypted password 'MOT_DE_PASSE_PAR_DEFAUT' NOSUPERUSER NOCREATEDB; -- Grants grant all privileges on database sygal to ad_sygal;