前提
docker hubにあるbitnamiのRedmineを使う。
以下のようにRedmine + MariaDBのコンテナを作成した。
docker-compose使っててもバックアップやリストアの手順は変わらないはず。
$ docker network create redmine_network
$ docker run -d --name mariadb --net=redmine_network -e ALLOW_EMPTY_PASSWORD=yes -e MYSQL_USER=root bitnami/mariadb
$ docker run -d --name redmine --net=redmine_network -p 外部から接続するポート:3000 bitnami/redmine:3.3.1-r11
バックアップ
Redmineコンテナからファイルが入っているディレクトリを圧縮
コンテナに入って、/bitnami/redmine/files配下をまるごと圧縮する。
$ docker exec -it redmine /bin/bash
(コンテナに入った↓)
# tar -zcvf /bitnami/redmine/files.tar.gz /bitnami/redmine/files
mariadbからデータダンプ取得
コンテナに入って、mysqldumpでデータをEXPORTする。
$ docker exec -it --user root mariadb /bin/bash
(コンテナに入った↓)
# mysqldump -u ユーザ -pパスワード bitnami_redmine > /bitnami/db_backup.dmp
コンテナ内のファイルを取り出す
$ docker cp mariadb:/bitnami/db_backup.dmp ~
$ docker cp redmine:/bitnami/redmine/files.tar.gz ~
リストア
バックアップファイルをコンテナに入れる
$ docker cp ./db_backup.dmp mariadb:/bitnami/
$ docker cp ./files.tar.gz redmine:/bitnami/redmine/
Redmineのコンテナ内でバックアップファイルを展開する
$ docker exec -it redmine /bin/bash
(コンテナに入った↓)
# tar -zxvf /bitnami/redmine/files.tar.gz
※ファイルの権限には注意
※解凍する場所に注意
MariaDBのユーザとパスワードを確認する
Redmineのコンテナに入ったまま、データベースへの接続情報を確認する。
# cat /bitnami/redmine/conf
(省略)
production:
adapter: mysql2
database: bitnami_redmine
host: mariadb
username: ユーザ
password: パスワード
encoding: utf8
(省略)
MariaDBのコンテナでダンプファイルをインポートする
$ docker exec -it --user root mariadb /bin/bash
(コンテナに入った↓)
# mysql -u ユーザ -pパスワード bitnami_redmine < /bitnami/db_backup.dmp