Hallo zusammen!
Ja. Ein langer Themen-Name aber ich finde einfach keine brauchbare Info dazu und hätte mir irgendwo genau diese Überschrift gewünscht.
Ich bin erst ganz neu mit PostgreSQL unterwegs, da eine Software die wir nutzen zukünftig nicht mehr für MySQL weiterentwickelt wird. Aber auch nicht schlecht. So lerne ich auch noch was neues.
Ich habe zwei Docker Container. In einem die Anwendung (app) und in dem anderen PostgreSQL (postgres). Über Docker Networks dürfen sie aufeinander zugreifen. Das läuft dann über den Container Namen als DNS-Namen. Ich gebe bei allen Verbindungseeinstellungen also nur “postgres” als DB-Host an.
Das funktioniert aber nur, wenn ich in der postgresql.conf folgendes bei listen_addresses setze:
listen_addresses = '*'
Wenn ich hier den App-Hostnamen eingebe, bekomme ich folgende Meldungen:
[1] LOG: could not bind IPv4 address "172.27.0.3": Cannot assign requested address
[1] WARNING: could not create listen socket for "app"
[1] FATAL: could not create any TCP/IP sockets
[1] LOG: database system is shut down
In der pg_hba.conf bin ich schon etwas weiter. Da habe ich herausgefunden, dass ich den App-Hostnamen + Docker Netzwerknamen eingeben muss:
host app app app.docker_postgres md5
Nur der App-Hostname bringt folgenden Fehler:
[33] FATAL: no pg_hba.conf entry for host "172.22.0.3", user "app", database "app", no encryption
[33] DETAIL: Client IP address resolved to "app.docker_postgres", forward lookup not checked.
IP Adressen kann ich keine verwenden, da die sich bei jedem Docker oder Server Neustart verändern.
Hat irgendwer eine Idee, wie ich es richtig / sauber einstellen könnte?
Vielen Dank schon mal im Voraus!
Gruß Nilx