Ini terjadi karena ketidakcocokan izin pengguna di wadah buruh pelabuhan.
Mencantumkan file yang relevan dalam wadah:
$ 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
kita dapat melihat bahwa semua db_*.stat
file dimiliki oleh root:root
, sedangkan global.stat
dimiliki oleh postgres:postgres
.
Memeriksa pengguna buruh pelabuhan memberi kami:
$ docker exec <container> whoami
root
Jadi, kami ingin semua file ini dimiliki oleh pengguna postgres. Untungnya, ini cukup mudah! Cukup setel pengguna ke postgres
, dan mulai ulang!
Dalam file buruh pelabuhan:
USER postgres
Menggunakan komposisi buruh pelabuhan:
services:
postgres:
image: postgres:13
user: postgres