Я новичок в Postgres.
Я обновил файл Docker, который я использовал и успешно установил Postgresql на нем. (Мое изображение работает Ubuntu 16.04, и я использую Postgres 9.6.)
Все работало нормально, пока я не попытался переместить базу данных в Volume
с помощью docker-compose
(после создания копии папки с контейнером с cp -R /var/lib/postgresql /somevolume/
.)
Проблема в том, что Postgres просто продолжает сбой, о чем свидетельствует супервизор:
2017-07-26 18:55:38,346 INFO exited: postgresql (exit status 1; not expected)
2017-07-26 18:55:39,355 INFO spawned: 'postgresql' with pid 195
2017-07-26 18:55:40,430 INFO success: postgresql entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2017-07-26 18:55:40,763 INFO exited: postgresql (exit status 1; not expected)
2017-07-26 18:55:41,767 INFO spawned: 'postgresql' with pid 197
2017-07-26 18:55:42,841 INFO success: postgresql entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2017-07-26 18:55:43,179 INFO exited: postgresql (exit status 1; not expected)
(and so on…)
Журналы
Мне не ясно, что происходит, когда /var/log/postgresql
остается пустым.
Чаун?
Я подозреваю, что это связано с пользователем. Если я сравниваю папку данных внутри контейнера и копию, которую я сделал с этим томом, единственное отличие состоит в том, что оригинал принадлежит postgres
, а копия принадлежит root
.
Я попытался запустить chown -R postgres:postgres
в копии. Операция была выполнена успешно, однако postmaster.pid
остается в собственности root
, и я думаю, что это будет проблемой.
Вопросы
- Как получить дополнительную информацию о причине сбоя?
- Как я могу сделать так, чтобы
postmaster.id
принадлежалpostgres
? - Должен ли я считать запуск postgres с помощью
root
?
Любые приветствия.
EDIT: ссылки на файл Docker и docker-compose.xml.