En fait, je suis en utilisant le fichier docker-compose.yml suivantDocker composer et postgres les variables d'environnement image officielle
version: '3.3'
services:
postgres:
container_name: postgres
image: postgres:latest
restart: always
environment:
POSTGRES_USER: ${POSTGRES_USER}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
POSTGRES_DB: ${POSTGRES_DB}
PGDATA: /var/lib/postgresql/data/pgdata
ports:
- "5432:5432"
volumes:
- ./data/postgres/pgdata:/var/lib/postgresql/data/pgdata
J'utilise également ce fichier .env dans le même répertoire du fichier docker-compose.yml :
POSTGRES_USER=dbadm
POSTGRES_PASSWORD=dbpwd
POSTGRES_DB=db
Puis je lance un shell bash dans un récipient de cette façon:
docker exec -ti postgres bash
Et après cette Invo ke la commande:
psql -h postgres -U dbadm db
Et je reçois l'erreur:
psql: FATAL: password authentication failed for user "dbadm"
Le fait étrange est que si l'on utilise les paramètres d'image par défaut:
psql -h postgres -U admin database
et insérez le mot de passe par défaut « Mot de passe ", il me connecte, et semble ignorer les variables d'environnement.
Qu'est-ce qui me manque?
journaux supplémentaires de journaux docker-Compose jusqu'à:
postgres | 2017-10-15 09:19:15.502 UTC [1] LOG: listening on IPv4 address "0.0.0.0", port 5432
postgres | 2017-10-15 09:19:15.502 UTC [1] LOG: listening on IPv6 address "::", port 5432
postgres | 2017-10-15 09:19:15.505 UTC [1] LOG: listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
postgres | 2017-10-15 09:19:15.524 UTC [22] LOG: database system was shut down at 2017-10-15 09:02:21 UTC
postgres | 2017-10-15 09:19:15.530 UTC [1] LOG: database system is ready to accept connections
ne vois pas la ligne "RUN" sur l'utilisateur, base de données et la configuration du mot de passe.
Il est source de confusion, vous essayez de vous connecter en tant que dbadm et cela ne fonctionne pas, mais vous dites que vous pouvez vous connecter en tant qu'administrateur. Avez-vous essayé d'utiliser l'utilisateur admin dans votre fichier .env? – Sergiu
Merci pour l'intérêt @Sergiu comme je l'ai dit, il fonctionne en utilisant les valeurs par défaut de l'image, mais ce n'est pas mon problème. – zioMitch
Pourriez-vous s'il vous plaît exécuter ce env | grep POSTGR dans votre conteneur postgres? – Sergiu