Redmine
GitLab
docker

RedmineとGitLab@Dockerのバックアップ&リストア

概要

前々回記事で構築したRedmine+GitLabの環境での、RedmineとGitLabのバックアップ&リストアについての内容です。
sameersbnさんのイメージを使用していますが、バックアップ&リストアが簡単に行えます。

使用Dockerイメージ

REPOSITORY TAG
sameersbn/redmine 3.4.4-2
sameersbn/gitlab 10.4.2

Redmineバックアップ&リストア

バックアップ

sameersbnのREADMEに、
コンテナは停止する事をお勧めします。
とあるのでコンテナを停止してからバックアップを実行する。

コンテナ停止
host$ docker stop redmine && docker rm redmine
バックアップコマンド実行
# 環境変数設定
host$ source .env
# バックアップコマンド実行
host$ docker-compose -f redmine/docker-compose.yml run --rm redmine app:backup:create

たったこれだけで、バックアップ完了。
念の為バックアップファイルになにが含まれるか確認してみる。

バックアップファイル確認
host$ ls /srv/docker/redmine/redmine/backups/
1518013409_redmine_backup.tar
host$ tar tf /srv/docker/redmine/redmine/backups/1518013409_redmine_backup.tar 
backup_information.yml
database.sql.gz
files.tar
dotfiles.tar.gz
plugins.tar.gz
themes.tar.gz

DB/添付ファイル/sshの鍵ペア/プラグイン/テーマが保存されている模様。

リストア

まっさらな環境へリストアする場合は、一度Redmineの起動まで済ませておき、バックアップファイルを/srv/docker/redmine/redmine/backups/へ配置しておく。

リストアの場合も、コンテナを停止しておきリストアコマンドを実行する。

コンテナ停止
host$ docker stop redmine && docker rm redmine
リストアコマンド実行
host$ source .env
host$ docker-compose -f redmine/docker-compose.yml run --rm redmine app:backup:restore
 :

# バックアップファイルの選択プロンプトが表示されるので、、
‣ 1518013409_redmine_backup.tar (created at 14 Feb, 2018 - 23:24:57 JST)

# リストアしたいバックアップファイルを選択しEnter押下
Select a backup to restore:1518013409_redmine_backup.tar

GitLabバックアップ&リストア

Redmineの手順とコンテナ名以外は全く同じ手順。

バックアップ

コンテナ停止
host$ docker stop gitlab && docker rm gitlab
バックアップコマンド実行
host$ source .env
host$ docker-compose -f gitlab/docker-compose.yml run --rm gitlab app:rake gitlab:backup:create

バックアップファイル出力先
/srv/docker/gitlab/gitlab/backups/

リストア

コンテナ停止
host$ docker stop gitlab && docker rm gitlab
リストアコマンド実行
host$ source .env
host$ docker-compose -f gitlab/docker-compose.yml run --rm gitlab app:rake gitlab:backup:restore

おわりに

RedmineとGitLabの環境を構築するにあたり、なんとなくで選んでみたsameersbnのイメージでしたが、正直これほどまで簡単にバックアップとリストアができる事に驚きました。
非常によく考えられたDockerイメージだと思います。