docker の postgres から「/var/lib/pgsql/.role.sh: not found」というエラーが発生するのはなぜですか?

docker の postgres から「/var/lib/pgsql/.role.sh: not found」というエラーが発生するのはなぜですか?

私はDockerでPostgreSQLを実行しています。ホストシステムはUbuntu 18.04.3です。PostgreSQLでSQLを実行するたびに、

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

なぜそうなるのか、または少なくとも.role.shスクリプトが何なのか知っている人はいませんか? ただし、SQL コードはいずれにしても機能しているようです。

セキュリティの推奨事項に従い、コンテナはコンテナとホストの両方でuid同じを持つ非ルート ユーザーの下で実行されています。gid

コンテナ内の出力SELECT version();:

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

PostgreSQL コマンドとエラーの画像:

PostgreSQL コマンドとエラーの画像。

答え1

プロンプトは を参照していると思います/var/lib/pgsql/.role.sh~/.psqlrcファイル、特に で始まる行を確認してください\set PROMPT1。該当する場合は、参照部分を削除します。

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

あるいは、このガイドに従って不足しているスクリプトを追加することもできます。これにより、PSQL プロンプトに現在のロールが表示されます。https://simply.name/yet-another-psql-color-prompt.html

関連情報