PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Базата данни на Postgres, работеща в докер, продължава да виси

Това се случва поради несъответствие на потребителски разрешения в докер контейнера.

Изброяване на съответните файлове в контейнера:

$ docker exec <container> ls -l /var/lib/postgresql/data/pg_stat_tmp
-rw------- 1 root     root     [...] db_0.stat
-rw------- 1 root     root     [...] db_1.stat
-rw------- 1 root     root     [...] db_2.stat
-rw------- 1 postgres postgres [...] global.stat

можем да видим, че всички db_*.stat файловете са собственост на root:root , докато global.stat е собственост на postgres:postgres .

Проверката на докер потребителя ни дава:

$ docker exec <container> whoami
root

Така че бихме искали всички тези файлове да бъдат собственост на потребителя на postgres. За щастие, това е доста лесно! Просто настройте потребителя на postgres и рестартирайте!

В докер файл:

USER postgres

Използване на docker-compose:

services:
  postgres:
    image: postgres:13
    user: postgres


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Liquibase/PostgreSQL:как да запазим правилно регистъра на таблицата?

  2. Възможно ли е да се използват две различни бази данни за офлайн уеб приложение

  3. Обратни координати в колоната с полигони на PostgreSQL

  4. Как да търся диапазон от цели числа в PostgreSQL?

  5. regexp_split_to_table и row_number