私がやりたいことは、本番環境のサーバから取り出したdump.rdbを使用して、開発環境で使用することです。ファイル。簡単にするためにdump.rdbからdocker上で実行されているredisを復元する
、私のアプリはRedisのとフラスコのため、このcompose example from the docker docsと同じであると仮定し、そのようにドッキングウィンドウ-compose.ymlに見えます:
version: '2'
services:
web:
build: .
ports:
- "5000:5000"
volumes:
- .:/code
depends_on:
- redis
redis:
image: redis
これは、再起動間のRedisのデータを持続し、あなただけではないことができますdocker-compose.ymlにredisのためのボリュームがマウントされていないので、redisファイルにアクセスします。 私はcomposeファイルを変更してredisのボリュームをマウントします。また、redisにデータを永続させたいのですが、official redis image docsは 'appendonly'を使用すると起こると言います。
redis:
image: redis
command: redis-server --appendonly yes
volumes:
- ./redis:/data
私はこれを行う場合、私のデータは、彼らが元の例にあったように、保持され、そして私は今/ Redisのパスにdump.rdbとし、appendonly.aofを見ることができます。問題は、私がdump.rdbから復元したい場合、私はappendonlyをオフにする必要があるということです(例えば、デジタル海洋のhow-to-back-up-and-restore-your-redis-data-on-ubuntu-14 -04)、追加なしでは、作成ファイルをボリュームに書き込む方法がわかりません。
dump.rdbファイルを切り替えて、本番環境のスナップショットを自分の開発環境に挿入できるボリュームに、redisを持続させるドッカー作成をどのようにすることができますか?
更新 次コン作品、しかしdump.rdbの作成はインスタントではないとして、テスト、(それが失敗したように、したがって、それは見せかけの)患者です。また、Redisの公式画像ドキュメントは、あなたがいないときappendonly使用する必要があります意味:
redis:
image: redis
volumes:
- ./redis:/data
おかげさまで@Chris - 作成ファイルを比較すると、一つの違いは、あなた自身のredisイメージ 'build redis'(c.f.' image redis')を構築していることです。私はあなたのredis Dockerfileを使ってそれがあったかどうかを見てみましたが、私はまだ期待どおりの結果を得ていませんでした。したがって私は標準的なイメージに戻って、「コマンド」を削除してボリュームを持っていました。それは時間の一部を修正するようだ - 時々私はコンテナを再起動する必要があります。私は問題は、 'dump.rdb'ファイルの作成がトリガされていないことですが、コンテナをシャットダウンするとトリガされるということです。 –