Il problema è che la tua applicazione/progetto sta tentando di accedere al file presa Postgres nella macchina host (non finestra mobile contenitore).
Per risolverlo si sarebbe neanche dovuto chiedere esplicitamente per una connessione TCP/IP, mentre utilizzando il flag -p
per impostare una porta per il contenitore Postgres, o condividere la presa di UNIX con l'edificio da HOST utilizzando il flag -v
.
: NOTA: Utilizzando la bandiera -v
o --volume=
significa che si condivide uno spazio tra la macchina host e il contenitore finestra mobile. Ciò significa che se hai Postgres installato sul tuo computer host e il suo funzionamento probabilmente incontrerai dei problemi.
Di seguito viene illustrato come eseguire un contenitore postgres accessibile da tcp/ip e unix socket. Inoltre sto nominando il contenitore come postgres
.
docker run -p 5432:5432 -v /var/run/postgresql:/var/run/postgresql -d --name postgres postgres
ci sono altre soluzioni, ma trovo questo il più adatto. Infine, se l'applicazione/progetto che richiede l'accesso è anche un contenitore, è meglio semplicemente collegarli.
Grazie a @toddsampson ma sembra che l'errore che hai collegato non sia il problema, tuttavia ho deciso di utilizzare un'immagine preconfigurata dall'indice che hai consigliato. Mi rendo conto che non ho fornito molte informazioni, ma potresti forse sospettare che cosa potrebbe causare questo comportamento? – Hevlastka
@Hevlastka Sono curioso: se questa risposta non ti ha fornito una soluzione, perché l'hai accettata? Sto colpendo lo stesso problema in questo momento, ed è un po 'frustrante vedere una risposta accettata che non risolve il problema. – Mihai
@Mihai L'ho accettato come risposta perché mi ha messo sulla strada giusta per trovare la soluzione. Ho scoperto che l'errore che ho riscontrato era in realtà un falso nascondendo il vero errore dietro di esso. Dai un'occhiata al [Dockerfile ufficiale postgres] (https://github.com/docker-library/postgres/blob/ed23320582f4ec5b0e5e35c99d98966dacbc6ed8/9.4/Dockerfile). Nel mio caso il server postgres non è mai stato avviato, quindi ho dovuto creare uno script personalizzato chiamato ENTRYPOINT. – Hevlastka