為什麼我在 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

相關內容