Problème PostgreSQL/Docker

Wims

Premium
Inscription
27 Août 2014
Messages
1 807
Réactions
418
Points
18 811
RGCoins
200
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 ?
 
edit: Je connais pas docker assez bien dsl :)
 
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
 
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!
 
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.
 
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:
 
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
 
Retour
Haut