2016-08-28 3 views
0

У меня есть приложение с несколькими контейнерами, которое использует изображение 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 
+0

Я решаю эту проблему. Это происходит, вероятно, из-за того, что я изменил разрешения для каталога _pgdb_ с именем пользователя root. По умолчанию я не мог открыть _pgdb_ в хост-машине, потому что владелец - пользователь _postgres_. Я мог ошибаться, но после того, как я остановился, чтобы изменить разрешение проблемы, ушло. – programmer22222

+0

Добавьте ответ на свой собственный пост, чтобы его можно было закрыть. Другие могут быть заинтересованы в этом решении. – Alkaline

ответ

0

Я решить эту проблему. Это происходит, вероятно, потому, что я изменил разрешения для pgdb с хостом root пользователь. По умолчанию я не смог открыть pgdb в главном компьютере, потому что владелец postgres пользователь. Я мог ошибаться, но после того, как я остановился, чтобы изменить разрешения, проблема исчезла.

Смежные вопросы