README.md 2.35 KB
Newer Older
Bertrand Gauthier's avatar
Bertrand Gauthier committed
1
2
# Sygal Db Image

3
4
## Script `docker/init_user_db.sh`

5
6
7
8
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` ;
9
10
11
- lancer tous les scripts .sql présents dans le répertoire `/sql` de l'image.

## Répertoire `docker/sql` => 
Bertrand Gauthier's avatar
Bertrand Gauthier committed
12

13
14
15
16
17
18
19
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)
Bertrand Gauthier's avatar
Bertrand Gauthier committed
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47

```bash
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, exemple :
```bash
docker build \
--rm \
--build-arg http_proxy \
--build-arg https_proxy \
--build-arg no_proxy \
-t sygal-db-image \
.
```

## Lancement (run)

Exemple :

```bash
docker run \
--env POSTGRES_USER=postgres \
--env POSTGRES_PASSWORD=admin \
48
49
50
--env SYGAL_DB: sygal \
--env SYGAL_USER: ad_sygal \
--env SYGAL_PASSWORD: azerty \
Bertrand Gauthier's avatar
Bertrand Gauthier committed
51
52
53
54
55
56
57
--publish 5432:5432 \
--volume $PWD/data/db:/var/lib/postgresql/data \
--name sygal-db-container \
sygal-db-image
```

Remarques :
58
- Le montage `$PWD/data/db:/var/lib/postgresql/data` permet de persister la base de données.
59
60
- 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`.
Bertrand Gauthier's avatar
Bertrand Gauthier committed
61
62
63
64
65
66
67
68
69
70
71
  
## Utilisation dans un `docker-compose.yml`

```
version: '2.2'
services:
  sygal-db:
    image: sygal-db
    container_name: sygal-db-container
    restart: always
    environment:
72
      POSTGRES_USER: postgres
Bertrand Gauthier's avatar
Bertrand Gauthier committed
73
      POSTGRES_PASSWORD: admin
74
75
76
      SYGAL_DB: sygal
      SYGAL_USER: ad_sygal
      SYGAL_PASSWORD: azerty
Bertrand Gauthier's avatar
Bertrand Gauthier committed
77
78
79
    ports:
      - 5432:5432
    volumes:
80
81
      - ./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
Bertrand Gauthier's avatar
Bertrand Gauthier committed
82
```