@mike89klein

Почему postgresql создаёт ещё одну директорию?

Здравствуйте. Подскажите, почему при разворачивании в docker базы postgresql, помимо папки с базами в /var/lib/docker/volumes создаёт ещё пустую папку с названием из псевдослучайного набора цифр и букв. Docker compose в таком формате:
version: "2.1"

services:
postgres:
image: postgres:13.3
restart: always
environment:
POSTGRES_DB: "database"
POSTGRES_USER: "user"
POSTGRES_PASSWORD: "user"
PGDATA: "/app/app/database/pgdata"
volumes:
- 'pg_data:/app/app/database'
ports:
- "5432:5432"

volumes:
pg_data: {}
  • Вопрос задан
  • 68 просмотров
Решения вопроса 1
shurshur
@shurshur
Сисадмин, просто сисадмин...
Потому что внутри образа postgres:13.3 анонсируется том /var/lib/postgresql/data. Поскольку он никак не описан при создании контейнера, создаётся анонимный том в стандартном хранилище и монтируется в контейнер. То, что в манифесте также объявлен ещё один том, никак не влияет на автосоздание вот этого. В итоге у нас два тома, один описан явно и смонтирован в /app/app/database/pgdata, другой описан в образе и смонтирован в /var/lib/postgresql/data.

Правильно монтировать свой том в /var/lib/postgresql/data, именно там образ будет хранить базу.

Посмотреть, что думает образ, можно командой docker inspect postgres:13.3
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы