私はdocker-compose.ymlファイルのpostgresイメージを使用している複数のコンテナアプリケーションを持っています。 Postgresコンテナには、永続ストレージのためのホストマシン上のボリュームがあります。docker-compose up-up-upで永続的なストレージを作成するにはどうすればいいですか?
初めてドッキングを実行すると、すべて正常ですが、postgresは自分のホストフォルダにdbファイルを作成します。 Webコンテナのコードを変更する場合は、ドッカーでアプリケーションを一時的にシャットダウンする必要があります。
私はdocker-composeを2回目に実行すると、すべての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
私はこの問題を解決します。おそらく、rootのrootユーザーで_pgdb_ディレクトリの権限を変更したために発生します。所有者は_postgres_ userなので、デフォルトではホストマシンで_pgdb_を開くことができませんでした。 私は間違っている可能性がありますが、問題を解決するために停止した後、問題の解決はなくなりました。 – programmer22222
自分の投稿に回答を追加して閉じることができます。他の人がこのソリューションに興味があるかもしれません。 – Alkaline