Почему я получаю ошибку «/var/lib/pgsql/.role.sh: not found» от postgres в docker?

Почему я получаю ошибку «/var/lib/pgsql/.role.sh: not found» от postgres в docker?

У меня PostgreSQL запущен в Docker. Хост-система — Ubuntu 18.04.3. Каждый раз, когда я выполняю SQL в PostgreSQL, я получаю

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

Кто-нибудь знает, почему это так или хотя бы что это за .role.shскрипт? Хотя SQL-код, похоже, работает.

Контейнер запущен под учетной записью пользователя без прав root, которая существует с теми же правами 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

Связанный контент