Quelqu’un a-t-il des idées sur la raison pour laquelle cela ne fonctionne pas, s’il vous plaît ?
J’ai suivi certains des posts de @pfaffman et @Nacho_Caballero dans ce sujet : How to make the database (or part of it) accessible to a cloud data processor? et le post de @mpalmer dans celui-ci : Accessing to the database from outside the container - #4 by mpalmer.
D’abord, j’ai édité app.yml avec :
expose:
- "127.0.0.2:5432:5432"
J’ai reconstruit le conteneur. Dans le conteneur, j’ai défini un mot de passe pour l’utilisateur postgres, et je peux ensuite me connecter avec la commande suivante depuis l’intérieur du conteneur :
psql -h localhost -d discourse -U postgres
Cependant, lorsque je quitte le conteneur et que j’essaie de me connecter, j’obtiens :
# psql -h 127.0.0.2 -p 5432 -d discourse -U postgres
psql: le serveur a fermé la connexion de manière inattendue
Cela signifie probablement que le serveur s'est terminé de manière anormale
avant ou pendant le traitement de la requête.
J’ai également essayé de changer le port pour un autre, mais j’obtiens la même chose. J’ai obtenu l’IP 127 de docker ps et en inspectant sous Paramètres réseau (j’ai trois instances Discourse autonomes en cours d’exécution).
Si je change l’IP (pour celle de l’un des autres forums Discourse), j’obtiens une réponse/message (plus immédiate et) différente, donc ce qui précède semble être partiellement correct :
# psql -h 127.0.0.3 -p 5432 -d discourse -U postgres
psql: impossible de se connecter au serveur : Connexion refusée
Le serveur est-il en cours d'exécution sur l'hôte "127.0.0.3" et accepte-t-il
les connexions TCP/IP sur le port 5432 ?
Des idées sur ce que je fais mal ? Chercher psql: le serveur a fermé la connexion de manière inattendue sur Google semble suggérer un problème de réseau — dois-je donc modifier autre chose à l’intérieur du conteneur ?