概要
前々回記事で構築した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イメージだと思います。