タイトルの通りのことをやりたかったので備忘録的なただのメモです。
基本的な手順は以下の通りです。
https://docs.growi.org/ja/admin-guide/admin-cookbook/mongodb-backup.html
--linkオプションのコンテナ名を調べる
docker ps
してmongoのNAMESを調べる。今回はgrowi3_mongo_1
なので--link growi3_mongo_1:mongo
が追加すべきオプション
# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
236373f1aaa4 growi3_hackmd "/usr/local/bin/dock…" 18 hours ago Up 18 hours 0.0.0.0:3100->3000/tcp growi3_hackmd_1
9270ea5af81e growi3_app "/sbin/tini -e 143 -…" 18 hours ago Up 18 hours 0.0.0.0:30000->3000/tcp growi3_app_1
b17a6a0c7a0f growi3_elasticsearch "/usr/local/bin/dock…" 18 hours ago Up 18 hours 9200/tcp, 9300/tcp growi3_elasticsearch_1
abf5b89acace mariadb:10.3 "docker-entrypoint.s…" 18 hours ago Up 18 hours 3306/tcp growi3_mariadb_1
7072563cd83b mongo:3.6 "docker-entrypoint.s…" 18 hours ago Up 18 hours 27017/tcp growi3_mongo_1
--netオプションのネットワーク名を調べる
docker network list
をしてNAMEを調べる。今回はgrowi3_default
なので--net=growi3_default
が追加すべきオプション
# docker network list
NETWORK ID NAME DRIVER SCOPE
14922bcf2b5c growi3_default bridge local
AccessKeyとAccessSecretを調べる
wasabiのコンソールのAccess Keysの箇所からAccess KeyをCREATEする。secretは生成時にしか参照できないのでメモるかcsvを落としておく。
今回はAccess Key Id = aaa
, Secret Access Key = bbb
とする。
Bucket URLを調べる。
これはそのままBucket NameがURLになる。例えばBucket Nameがhogehoge-bucket
であればs3://hogehoge-bucket/
。階層にしたいなら/dir/
など適時追加する。
Endpoint URLを調べる。
mongodb-awesome-backupのデフォルトはAWSなので、wasabiのendpointを調べる。
Regionに応じて以下から参照。今回はap-northeast-1
なのでhttps://s3.ap-northeast-1.wasabisys.com
。
mongodb-awesome-backupを起動する
以下のリポジトリをcloneする。
https://github.com/weseek/mongodb-awesome-backup
# git clone https://github.com/weseek/mongodb-awesome-backup.git
# cd mongodb-awesome-backup
オプションつけてdocker run
する。
docker run --rm \
-e AWS_ACCESS_KEY_ID=aaa \
-e AWS_SECRET_ACCESS_KEY=bbb \
-e TARGET_BUCKET_URL=s3://hogehoge-bucket/ \
-e AWSCLI_ENDPOINT_OPT=https://s3.ap-northeast-1.wasabisys.com \
--link growi3_mongo_1:mongo \
--net=growi3_default \
weseek/mongodb-awesome-backup
以上です。