Ciò si verifica a causa di una mancata corrispondenza delle autorizzazioni utente nel contenitore della finestra mobile.
Elenco dei file rilevanti nel contenitore:
$ 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
possiamo vedere che tutto il db_*.stat
i file sono di proprietà di root:root
, mentre global.stat
è di proprietà di postgres:postgres
.
Il controllo dell'utente della finestra mobile ci dà:
$ docker exec <container> whoami
root
Quindi, vorremmo che tutti questi file fossero di proprietà dell'utente postgres. Fortunatamente, è abbastanza facile! Basta impostare l'utente su postgres
, e riavvia!
In un dockerfile:
USER postgres
Usando la composizione mobile:
services:
postgres:
image: postgres:13
user: postgres