为什么我在 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以相同的非 root 用户身份运行。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

相关内容