sql >> Databasteknik >  >> RDS >> PostgreSQL

Postgres databas som körs i docker fortsätter att hänga

Detta händer på grund av att användarbehörighet inte överensstämmer i dockningsbehållaren.

Lista relevanta filer i behållaren:

$ 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

vi kan se att alla db_*.stat filerna ägs av root:root , medan global.stat ägs av postgres:postgres .

Att kontrollera docker-användaren ger oss:

$ docker exec <container> whoami
root

Så vi vill att alla dessa filer ska ägas av postgres-användaren. Lyckligtvis är detta ganska enkelt! Ställ bara in användaren på postgres , och starta om!

I en dockerfil:

USER postgres

Använda docker-compose:

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


  1. Finns det något sätt att bara begränsa det lägre intervallet i mysql?

  2. SELECT-fråga med bokstavstecken (kolon, semikolon) i Oracle

  3. Spring Mvc Hibernate Encoding/Multi-line import sql

  4. En introduktion till MySQL-distribution med en Ansible-roll