Обновление с очень старого контейнера не удаётся из-за ошибок прав доступа postgres

Продолжение обсуждения из страницы Welcome to nginx! до пересборки, сайт теперь не пересобирается:

Это довольно редкий случай, но при обновлении с очень старого контейнера права доступа для postgres могут быть неверными (изменились UID и GID пользователя postgres). Для исправления необходимо выполнить:

chmod -R 101:104 /var/discourse/shared/standalone/postgres_data

Я делал это несколько раз. Я заметил проблему в своём первом ответе в связанной теме, но определить, какие именно UID/GID требуются, для большинства людей не так просто. (Найдите рабочий сервер и выполните ls -ld /var/discourse/shared/standalone/postgres_data.)

3 лайка

Или проще:

○ → docker run --rm discourse/base:2.0.20250226-0128 id postgres
uid=101(postgres) gid=104(postgres) groups=104(postgres),107(ssl-cert)

Или ещё лучше:

docker run --rm -v /var/discourse/shared/standalone/postgres_data:/data discourse/base:2.0.20250226-0128 chown -R postgres:postgres /data
3 лайка

Вот именно такой ответ мне и нравится. Это не то, что многие назвали бы «легким»!

Я просто не думаю запускать чистый контейнер.

1 лайк