sql >> Database >  >> RDS >> PostgreSQL

Postgres-database die in docker draait, blijft hangen

Dit gebeurt vanwege een niet-overeenkomende gebruikersmachtiging in de docker-container.

De relevante bestanden in de container weergeven:

$ 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

we kunnen zien dat alle db_*.stat bestanden zijn eigendom van root:root , terwijl global.stat is eigendom van postgres:postgres .

Het controleren van de docker-gebruiker geeft ons:

$ docker exec <container> whoami
root

We willen dus dat al deze bestanden eigendom zijn van de postgres-gebruiker. Gelukkig is dit vrij eenvoudig! Stel de gebruiker gewoon in op postgres , en herstart!

In een dockerbestand:

USER postgres

Docker-compose gebruiken:

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


  1. IN-instructie gebruiken voor opgeslagen procedureparameter SQL

  2. Vraag was leeg PHP-fout

  3. Hoe importeer ik MySql Connector in Unity Project?

  4. DataSourceInitializer werkt niet op Spring boot 1.2