Ich habe einen Kong API Gateway Container und einen postgres Container und ich muss überprüfen, ob Postgres gestartet und bereit aus dem Container Kong vor dem Ausführen der Migrationen. Ich dachte über die Installation der Postgres-Client-Dienstprogramme in ein benutzerdefiniertes Bild auf der Grundlage der offiziellen Kong-Bild mit RUN yum install postgresql -y && yum clean all
in meiner Dockerfile und entweder psql
oder pg_isready
, um dies zu erreichen. Ich habe einen Postgres-Benutzer namens polling
mit einem leeren Passwort speziell für die Überprüfung des Status des Servers durch diese beiden Dienstprogramme erstellt. Keine von beiden arbeitet.Docker - überprüfen, ob Postgres bereit ist
Ich habe versucht, diese Befehle aus dem benutzerdefinierten Kong Bild auszuführen:
psql. Der Befehl
psql -h postgres -U polling -w -c '\l'
schlägt mit dem Fehlerpsql: fe_sendauth: no password supplied
fehl. Aber der Benutzer hat kein Passwort. Was mache ich falsch? Das vollständige Shell-Skript, das überprüft, ob der Server mit psql bereit ist, wird here beschrieben.pg_isready. Ich bekomme nicht, wie man dieses Dienstprogramm separat in ein kundenspezifisches Bild auf der Grundlage des offiziellen Kong-Bildes installiert, das wiederum auf dem
centos:7
Bild basiert, enthält daspostgresql
Paket nichtpg_isready
. Nur diese Dienstprogramme sind installiert und können in/usr/bin
:pg_config
,pg_dump
,pg_dumpall
,pg_restore
,psql
gefunden werden. Wie installiere ichpg_isready
? Ich möchte nicht die vollständige Serverinstallation im Kong-Image haben.
In Bezug auf # 1, haben Sie die pg_hba.conf angepasst? Siehe https://dba.stackexchange.com/questions/83164/remove-password-requirement-for-user-postgres – bluescores
@bluescores richtig, ich muss diese Konfiguration ändern oder .pgpass auf dem Client hinzufügen. Das Problem mit letzterem gelöst. Ich sollte bemerken, dass ich ein Passwort für meinen Polling-Benutzer einrichten musste, psql schrie mich an, wenn der Pass leer war, unabhängig von .pgpass – Sergey