Qualcuno ha idee sul perché questo non funzioni, per favore?
Ho seguito alcuni post di @pfaffman e @Nacho_Caballero in questo argomento: How to make the database (or part of it) accessible to a cloud data processor? e il post di @mpalmer in questo: Accessing to the database from outside the container - #4 by mpalmer.
Per prima cosa ho modificato app.yml con:
expose:
- "127.0.0.2:5432:5432"
Ho ricompilato il container. All’interno del container ho impostato una password per l’utente postgres e riesco quindi a connettermi con il seguente comando dall’interno del container:
psql -h localhost -d discourse -U postgres
Tuttavia, quando escono dal container e provo a connettermi, ottengo:
# psql -h 127.0.0.2 -p 5432 -d discourse -U postgres
psql: server ha chiuso la connessione inaspettatamente
Questo probabilmente significa che il server si è interrotto in modo anomalo
prima o durante l'elaborazione della richiesta.
Ho anche provato a cambiare la porta con un’altra, ma ottengo lo stesso risultato. Ho ottenuto l’IP 127 da docker ps e ispezionando le impostazioni di rete (ho tre istanze Discourse standalone in esecuzione).
Se cambio l’IP (con quello di uno degli altri forum Discourse), ottengo una risposta/messaggio diverso (più immediato), quindi quanto sopra sembra essere parzialmente corretto:
# psql -h 127.0.0.3 -p 5432 -d discourse -U postgres
psql: impossibile connettersi al server: Connessione rifiutata
Il server è in esecuzione sull'host "127.0.0.3" e accetta
connessioni TCP/IP sulla porta 5432?
Qualche idea su cosa sto sbagliando? Cercando su Google psql: server ha chiuso la connessione inaspettatamente sembra suggerire un problema di rete: devo quindi modificare qualcos’altro all’interno del container?