У меня есть приложение с несколькими контейнерами, которое использует изображение postgres в файле docker-compose.yml. Контейнер Postgres имеет объем на хост-машине для постоянного хранения.Как сделать постоянное хранилище с помощью докеры-компоновкой вверх-вниз?
Когда я запускаю сборку докеров в первый раз, все в порядке, postgres создает файлы db в папке моего хоста. После этого мне нужно временно закрыть приложение с помощью docker-compose down, если я изменю код веб-контейнера.
Когда я запускаю docker-compose во второй раз, postgres перезаписывают все файлы db, но мне нужны эти данные, которые не меняются. Как я могу решить эту проблему?
Мой докер-compose.yml
version: '2'
services:
web:
build: ./web
command: python3 main.py
volumes:
- ./web:/app
ports:
- "80:80"
depends_on:
- db
- redis
links:
- db:db
- redis:redis
db:
image: postgres
ports:
- "5432:5432"
environment:
- POSTGRES_PASSWORD:0000
volumes:
- ./pgdb:/var/lib/postgresql/data
redis:
image: redis
ports:
- "6379:6379"
command: redis-server --appendonly yes
volumes:
- ./redisdb:/data
Я решаю эту проблему. Это происходит, вероятно, из-за того, что я изменил разрешения для каталога _pgdb_ с именем пользователя root. По умолчанию я не мог открыть _pgdb_ в хост-машине, потому что владелец - пользователь _postgres_. Я мог ошибаться, но после того, как я остановился, чтобы изменить разрешение проблемы, ушло. – programmer22222
Добавьте ответ на свой собственный пост, чтобы его можно было закрыть. Другие могут быть заинтересованы в этом решении. – Alkaline