Postgresql как docker контейнер не начинается с данных из сопоставленного тома - PullRequest
0 голосов
/ 24 марта 2020

На моем MacBook postgresql работает в контейнере docker, и я использую сопоставленный том для сохранения данных. Это прекрасно работает локально. Однако, когда я пытаюсь сделать то же самое на сервере Ubuntu, «начальные» данные с сопоставленного тома не работают. Postgres запускается в «пустом» исходном состоянии. Однако когда я добавляю таблицу и данные в эту таблицу в базе данных postgres по умолчанию, она становится постоянной. Таким образом, отображение объема, кажется, работает. Кроме того, интересно отметить, что я получаю сообщение об ошибке при попытке создать таблицу в новой базе данных. Новая база данных также является постоянной, но таблица не может быть сохранена, поскольку возникла ошибка:

не удалось открыть файл «base / 16384/2611»: такого файла или каталога нет

Ожидается, что база папок / 16384 не существует.

Мне кажется, это проблема пользователей / прав, возможно, но не знаю, как это исправить. Я попытался запустить контейнер как root, но это не помогло.

Есть предложения?

Я запускаю контейнер с помощью docker -compose или из командной строки, используя ;

docker run --rm --name pg -e POSTGRES_PASSWORD=[password] -d -p 5432:5432 -v /root/docker/volumes/postgres:/var/lib/postgresql/data postgres -c listen_addresses='*'

1 Ответ

0 голосов
/ 28 марта 2020

Вместо того, чтобы перемещать фактическую папку данных, я использовал pg_dump и pg_restore в пределах docker контейнеров для предложения на docker форумах . Это сделало трюк

...