sql >> Databáze >  >> RDS >> PostgreSQL

Databáze Postgres běžící v dockeru stále visí

K tomu dochází kvůli nesouladu uživatelských oprávnění v kontejneru ukotvitelného panelu.

Výpis příslušných souborů v kontejneru:

$ 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

můžeme vidět, že všechny db_*.stat soubory jsou vlastněny root:root , zatímco global.stat je ve vlastnictví postgres:postgres .

Kontrola uživatele dockeru nám dává:

$ docker exec <container> whoami
root

Takže bychom rádi, aby všechny tyto soubory vlastnil uživatel postgresu. Naštěstí je to docela snadné! Stačí nastavit uživatele na postgres a restartujte!

V dockerfile:

USER postgres

Pomocí docker-compose:

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


  1. Nejlepší přístup k přidávání záznamů do DB pomocí php/ajax/mysql?

  2. Fuzzy vyhledávání adresy MySQL

  3. Načtěte data z tabulky spojení v Yii2

  4. Použití korelovaného poddotazu