Skip to content
Snippets Groups Projects
Select Git revision
0 results

sygal-db-image

  • Clone with SSH
  • Clone with HTTPS
  • SyGAL Database Image

    Ce projet est une image Docker rassemblant le nécessaire pour créer (le cas échéant) et de lancer une base de données pour l'application ESUP-SyGAL.

    Lancement de la base de données

    Sans docker-compose

    docker run \
    --rm \
    --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/docker/sql/:/sql \
    --volume $PWD/data/db:/var/lib/postgresql/data \
    sygal-db-image

    Remarques :

    • Les variables d'environnement POSTGRES_* spécifient le super-utilisateur à créer (cf. https://registry.hub.docker.com/_/postgres).
    • Les variables d'environnement SYGAL_* spécifient la base de données et l'utilisateur SyGAL à créer.
    • Le montage $PWD/data/db:/var/lib/postgresql/data permet de spécifier un répertoire dans lequel sera persistée la base de données. Si aucune base n'est déjà persistée, le script /initdb.sh est lancé automatiquement au démarrage du container pour exécuter les scripts SQL situés dans le répertoire /sql :
      • Pour commencer, ce sont les scripts SQL placés dans le sous-répertoire admin qui sont exécutés avec le super-user identifié par les variables d'environnement POSTGRES_USER et POSTGRES_PASSWORD.
      • Ce sont ensuite les autres scripts qui sont exécutés avec le user identifié par les variables d'environnement SYGAL_USER et SYGAL_PASSWORD.
    • Vous pouvez substituer les scripts SQL par les vôtres en remplaçant le montage dans /sql (exemple : --volume $PWD/mes/scripts/sql/:/sql). La présence d'un sous-répertoire admin n'est pas obligatoire.

    Avec docker-compose

    Si vous utilisez docker-compose, les variables d'environnement POSTGRES_* et SYGAL_* sont spécifiées "en dur" dans le fichier docker-compose.yml.

    docker-compose up

    Utilisation de l'image dans un docker-compose.yml

    version: '2.2'
    services:
      sygal-db:
        image: sygal-db
        container_name: sygal-db-container
        restart: always
        environment:
          POSTGRES_USER: postgres
          POSTGRES_PASSWORD: admin
          SYGAL_DB: sygal
          SYGAL_USER: ad_sygal
          SYGAL_PASSWORD: azerty
        ports:
          - "5432:5432"
        volumes:
          - ./mon/emplacement/sql/:/sql                   # répertoire des scripts de création de la bdd
          - ./mon/emplacement/db:/var/lib/postgresql/data # répertoire où la bdd est persistée

    Build de l'image

    • Facultatif : vous pouvez éventuellement récupérer les dernières versions des scripts SQL comme ceci :
    ./update_sql.sh

    NB : Ce script se termine par un git status permettant de connaître les scripts SQL ayant changé.

    • Build
    docker build \
    --rm \
    -t sygal-db-image \
    .

    Attention ! Si vous êtes derrière un proxy, vous pouvez transmettre les valeurs courantes de vos variables d'environement *_proxy à la commande build avec des --build-arg additionnels.