Warum erhalte ich von Postgres im Docker den Fehler „/var/lib/pgsql/.role.sh: nicht gefunden“?

Warum erhalte ich von Postgres im Docker den Fehler „/var/lib/pgsql/.role.sh: nicht gefunden“?

Ich habe PostgreSQL in Docker laufen. Das Hostsystem ist Ubuntu 18.04.3. Jedes Mal, wenn ich SQL in PostgreSQL ausführe, bekomme ich

/var/lib/pgsql/.role.sh: not found

Weiß jemand, warum das so ist oder zumindest, was das für ein .role.shSkript ist? Der SQL-Code scheint aber trotzdem zu funktionieren.

Der Container wird gemäß der Sicherheitsempfehlung unter einem Nicht-Root-Benutzer ausgeführt, der mit denselben Berechtigungen sowohl im Container als auch auf dem Host uidvorhanden ist .gid

Ausgabe SELECT version();im Container:

PostgreSQL 12.0 (Debian 12.0-2.pgdg100+1) on x86_64-pc-linux-gnu [...]

Bild des PostgreSQL-Befehls und -Fehlers:

Bild des PostgreSQL-Befehls und -Fehlers.

Antwort1

Ich glaube, Ihre Eingabeaufforderung verweist auf /var/lib/pgsql/.role.sh. Überprüfen Sie Ihre ~/.psqlrcDatei, insbesondere die Zeile, die mit beginnt \set PROMPT1. Entfernen Sie ggf. den Teil mit der Referenz:

%`/var/lib/pgsql/.role.sh\`

Alternativ können Sie das fehlende Skript gemäß dieser Anleitung hinzufügen. Es zeigt Ihre aktuelle Rolle in der PSQL-Eingabeaufforderung an:https://simply.name/noch-ein-anderes-psql-color-prompt.html

verwandte Informationen