とある事情で Wekan サーバーを引っ越ししました。
docker-compose で立てていたのですが、データベースのバックアップ・リストアをしたときの手順を備忘録として残しておきます。
手順はこちらを参考しました。
「Dockerで起動しているMongoDBにリストアする - Qiita」
環境
docker-compose はこんな感じです。
元サーバー
version: '2'
services:
wekan:
image: mquandalle/wekan
restart: always
links:
- wekandb
environment:
- MONGO_URL=mongodb://wekandb/wekan
- ROOT_URL=http://hogehoge:8088
ports:
- 8088:8080
networks:
- app_net
wekandb:
image: mongo:3.2.11
volumes:
- /mnt/sda1/docker/wekan/data:/data/db
- /mnt/sda1/docker/wekan/configdb:/data/configdb
restart: always
networks:
- app_net
networks:
app_net:
ipam:
config:
- subnet: 172.XX.XX.X/24
network 指定あり、db はホストにマウント済み。
移動先サーバー
version: '2'
services:
wekan:
image: mquandalle/wekan
restart: always
links:
- wekandb
environment:
- MONGO_URL=mongodb://wekandb/wekan
- ROOT_URL=http://fugafuga:8088
ports:
- 8088:8080
wekandb:
image: mongo:3.2.11
volumes:
- db_data:/data/db
- db_config:/data/configdb
restart: always
volumes:
db_data:
external: true
db_config:
external: true
network はなし。Windows マシンなのでホストにマウントするのがうまくいかないのでボリュームを作ってそこに永続化。
バックアップ
Qiita 記事のリストアコマンドをバックアップコマンドに変更して実行します。
元サーバーはホストに db をマウントしてるのでそこからやってもいいのかもしれませんが、mongodump しました。
また、ネットワーク作ってるのでそれを指定してます。
docker run --rm --link wekan_wekandb_1:mongo -it -v ~/wekan/backup:/backup --network wekan_app_net -w /backup mongo:3.2.11 bash -c "mongodump --host mongo"
backup ディレクトリに出力されてるはずなのでそれを引越し先サーバーにコピー。
リストア
リストアもバックアップ同様に行いました。
こちらはネットワークを指定しませんが docker-compose up すると wekan_default のようにデフォのネットワークが作られるのでそちらを指定します。
(細かいですが Windows 上なのでルートパスの / を2重化してます。この件は「ブログズミ: Docker Toolbox でホストのカレントディレクトリをマウントするときの備忘録」を参照してください。)
docker run --rm --link wekan_wekandb_1:mongo -it -v "/$(pwd)/backup/dump":/backup --network wekan_default -w //backup mongo:3.2.11 bash -c "mongorestore --host mongo /backup"
2021-01-14T08:18:03.435+0000 building a list of dbs and collections to restore from /backup dir 2021-01-14T08:18:03.484+0000 reading metadata for wekan.cfs_gridfs.attachments.chunks from /backup/wekan/cfs_gridfs.attachments.chunks.metadata.json 2021-01-14T08:18:03.484+0000 reading metadata for wekan.cfs_gridfs._tempstore.chunks from /backup/wekan/cfs_gridfs._tempstore.chunks.metadata.json ・・・ 2021-01-14T08:18:04.035+0000 finished restoring wekan.customFields (0 documents) 2021-01-14T08:18:05.581+0000 restoring indexes for collection wekan.cfs_gridfs.attachments.chunks from metadata 2021-01-14T08:18:05.665+0000 finished restoring wekan.cfs_gridfs.attachments.chunks (189 documents) 2021-01-14T08:18:05.666+0000 done
のようにできたら完了です。
移行先の Wekan にアクセスして確認しましょう。
最後に
Wekan は OSS の Trello っぽいやつです。
かなり進化していて WIP 制限とかスイムレーンとかあるので Trello よりも仕事で使えると思います。
便利なんでぜひ使ってみてください。
今回は以上です。
0 件のコメント:
コメントを投稿