Problème PostgreSQL/Docker

Wims

Premium
Inscription
27 Août 2014
Messages
1 805
Réactions
418
Points
15 911
Bonjour,

J'ai un container PostgreSQL sous Docker que je lance via un docker-compose.yml et il m'est impossible de créer une base de donnée sur celle-ci.

Au début voici à quoi ressemble mon docker-compose :

YAML:
version: '2'
services:
  postgres:
    image: postgres:latest
    ports:
    - "5432:5432"
    environment:
      POSTGRES_USER: kanboard
      POSTGRES_PASSWORD: kanboard
      POSTGRES_DB: kanboard

Logiquement il devrait donc démarrer le container et créer directement un utilisateur "kanboard" ayant comme mot de passe "kanboard" et une base de donnée nommée "kanboard".. Si j'ai bien compris comme ceci fonctionne?
( )

Or, le container se lance bien mais aucun environment n'a était prit en compte.

J'ai donc décidé de me connecter au container via un "docker exec -it <container> bash" et de me connecter au serveur PGSQL.
Je fais donc ces commandes afin de créer ma base de donnée manuellement :

Bash:
psql -U posgres
createdb kanboard
\l

Et voici ce que me retourne le \l :

Bash:
   Name    |  Owner   | Encoding |  Collate   |   Ctype    |   Access privileges
-----------+----------+----------+------------+------------+-----------------------
 postgres  | postgres | UTF8     | en_US.utf8 | en_US.utf8 |
 template0 | postgres | UTF8     | en_US.utf8 | en_US.utf8 | =c/postgres          +
           |          |          |            |            | postgres=CTc/postgres
 template1 | postgres | UTF8     | en_US.utf8 | en_US.utf8 | =c/postgres          +
           |          |          |            |            | postgres=CTc/postgres

Même en rentrant la commande manuellement, la base de donnée ne se créer pas, et je n'ai aucune erreur..


Si quelqu'un a une solution, je vous en remercie !

@Rivals @Paul GTP @Marent ?
 

Mathieu ?

IT Officer @STATION F
Premium
Inscription
19 Novembre 2016
Messages
1 247
Réactions
1 460
Points
12 310
Et bien c'est exactement ce que j'ai fait, regarde ma première balise CODE sur le topic ?
Ouai non j'ai corriger :xD:

toi tu met postgres eux ils mettent db mais peut-etre que c'est une variable donc j'y connais rien dsl xD
 

Wims

Premium
Inscription
27 Août 2014
Messages
1 805
Réactions
418
Points
15 911
Ouai non j'ai corriger :xD:

toi tu met postgres eux ils mettent db mais peut-etre que c'est une variable donc j'y connais rien dsl xD
C'est juste un nom qu'on définit au service en question (car tu peux en mettre plusieurs dans le même fichier afin de pouvoir démarrer plusieurs container en même temps).

Merci quand même de t'être penché dessus!
 

Wims

Premium
Inscription
27 Août 2014
Messages
1 805
Réactions
418
Points
15 911
J'ai finalement trouvé.

Pour ceux qui auraient le même problème, voici la solution :

Lorsque vous créer vos environnements dans le fichier YML, la première chose que vous devez faire c'est de créer la base de donnée.
Sans la base de donnée vous ne pouvez pas créer d'utilisateur.

Voici donc à quoi ressemble le fichier :

YAML:
version: '2'
services:
  postgres:
    image: postgres:latest
    hostname: postgres
    ports:
    - "5432:5432"
    environment:
      POSTGRES_DB: kanboard
      POSTGRES_USER: kanboard
      POSTGRES_PASSWORD: kanboard

Le POSTGRES_DB est désormais en premier.
 

Paul GTP

Légende vivante
VIP
Inscription
15 Août 2013
Messages
6 194
Réactions
7 545
Points
24 772
Je vois que c'est résolu, tant mieux ahah :p
Désolé, je suis le genre de vendus qui utilisent MySQL plutôt que PostegreSQL par simplicité :espion:
 

Wims

Premium
Inscription
27 Août 2014
Messages
1 805
Réactions
418
Points
15 911
Je vois que c'est résolu, tant mieux ahah :p
Désolé, je suis le genre de vendus qui utilisent MySQL plutôt que PostegreSQL par simplicité :espion:
Salut oui :espion:
Je vais pas te mentir que c'est une des rares fois que j'utilise PostgreSQL, c'est dans le cahier des charges donc je suis obligé, autrement j'aurai aussi pris MySQL que je connais beaucoup plus :p
 
Haut