PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Baza danych Postgres działająca w dockerze ciągle się zawiesza

Dzieje się tak z powodu niezgodności uprawnień użytkownika w kontenerze dockera.

Lista odpowiednich plików w kontenerze:

$ 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

widzimy, że wszystkie db_*.stat pliki są własnością root:root , natomiast global.stat należy do postgres:postgres .

Sprawdzenie użytkownika dockera daje nam:

$ docker exec <container> whoami
root

Chcielibyśmy więc, aby wszystkie te pliki należały do ​​użytkownika postgres. Na szczęście jest to całkiem proste! Po prostu ustaw użytkownika na postgres i uruchom ponownie!

W pliku docker:

USER postgres

Korzystanie z 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. Heroku Rails 4 nie może połączyć się z serwerem:połączenie odrzucone

  2. gitlab Error 500 po aktualizacji podczas przeglądania projektów

  3. Poczekaj na kilka połączeń db przed uruchomieniem serwera ekspresowego?

  4. wybierz maksymalne i minimalne wartości co x ilość wierszy-postgresql

  5. Ściągawka konfiguracji PostgreSQL