2014-05-18 15 views
7

Ho seguito diversi tutorial differenti così come quella ufficiale però ogni volta che provo ad installare PostgreSQL all'interno di un contenitore ricevo il seguente messaggio dopoPostgreSQL Installazione all'interno di un contenitore di finestra mobile

psql: could not connect to server: No such file or directory 
Is the server running locally and accepting 
connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"? 

Ho guardato attraverso diverse domande qui su SO e su internet ma senza fortuna.

risposta

4

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.

2

Ecco le istruzioni per il fissaggio quell'errore che dovrebbe funzionare anche per il vostro contenitore finestra mobile: PostgreSQL error 'Could not connect to server: No such file or directory'

Se questo non funziona per qualsiasi motivo, ci sono molti di off-the-shelf contenitori PostgreSQL docker si può guardare a per riferimento sull'Indice Docker: https://index.docker.io/search?q=postgresql

Molti dei contenitori sono creati da repository attendibili su github. Quindi, se ne trovi uno che sembra soddisfare le tue esigenze, puoi consultare la fonte.

progetto

Il Flynn ha anche incluso un apparecchio di PostgreSQL che potrebbe essere la pena di verificare: https://github.com/flynn/flynn-postgres

+0

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

+1

@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

+1

@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

Problemi correlati