Le problème est que la votre application/projet tente d'accéder au fichier de prise postgres dans la machine hôte (non docker conteneur).
Pour résoudre un faudrait soit demander explicitement une connexion tcp/ip en utilisant le drapeau -p
pour mettre en place un port pour le conteneur Postgres, ou partager la prise unix avec le Maching hôte en utilisant le drapeau -v
. L'utilisation du drapeau -v
ou --volume=
signifie que vous partagez de l'espace entre la machine HOST et le conteneur docker. Cela signifie que si vous avez installé postgres sur votre machine hôte et son fonctionnement, vous rencontrerez probablement des problèmes. Ci-dessous, je montre comment exécuter un conteneur postgres accessible à partir de TCP/IP et un socket Unix. Aussi, je nomme le conteneur postgres
.
docker run -p 5432:5432 -v /var/run/postgresql:/var/run/postgresql -d --name postgres postgres
Il existe d'autres solutions, mais je trouve celui-ci le plus approprié. Enfin, si l'application/le projet nécessitant un accès est également un conteneur, il est préférable de simplement les lier.
Merci @toddsampson mais il semble que l'erreur que vous avez liée n'est pas le problème, néanmoins j'ai décidé d'utiliser une image préconfigurée de l'index que vous avez recommandé. Je me rends compte que je n'ai pas fourni beaucoup d'informations mais pourriez-vous soupçonner ce qui pourrait causer un tel comportement? – Hevlastka
@Hevlastka Je suis curieux: si cette réponse ne vous a pas apporté de solution, pourquoi l'avez-vous acceptée? Je suis sur le même sujet en ce moment, et c'est un peu frustrant de voir une réponse acceptée qui ne résout pas le problème. – Mihai
@Mihai J'ai accepté cela comme une réponse parce que cela m'a placé sur la bonne voie pour trouver la solution. Il s'est avéré que l'erreur que j'ai vécue était en fait une fausse cachant la vraie erreur derrière elle. Jetez un oeil à la [Dockerfile] officiel de postgres (https://github.com/docker-library/postgres/blob/ed23320582f4ec5b0e5e35c99d98966dacbc6ed8/9.4/Dockerfile). Dans mon cas, le serveur postgres n'a jamais démarré, donc j'ai dû créer un script personnalisé qui a été appelé en utilisant ENTRYPOINT. – Hevlastka