オンプレミスで Docker 上で動作させている GitLab のバックアップとリストアについてです。
環境
- ホスト : CentOS 7
- GitLab 8.12.1
バックアップ
まずは Docker コンテナに入ります。
docker exec -it コンテナ名 bash
GitLab では以下のコマンドを入力することで簡単にバックアップが行えます。
gitlab-rake gitlab:backup:create
バックアップしたファイルは /var/opt/gitlab/backups
に 1524094876_2018_04_18_10.1.2_gitlab_backup.tar
のような名前で保存されています。
データのコピー
バックアップしたファイルを別の Docker コンテナでリストアしたかったため、ファイルを移動させる必要がありました。
まずはホスト環境にコピーします。
docker cp <コンテナID>:ファイルのパス フォルダ名
例えば以下のような感じです。
docker cp gitlab:/var/opt/gitlab/backups/1524094876_2018_04_18_10.1.2_gitlab_backup.tar ./
今度はリストアしたいコンテナにコピーします。
docker cp ファイルのパス <コンテナID>:フォルダ名
例えば以下のような感じです。
docker cp 1524094876_2018_04_18_10.1.2_gitlab_backup.tar gitlab:/var/opt/gitlab/backups/
リストア
リストア自体は以下のコマンドでできます。
gitlab-rake gitlab:backup:restore
バックアップファイルが複数ある場合は、以下のようにタイムスタンプを指定します。
gitlab-rake gitlab:backup:restore BACKUP=1524094876_2018_04_18_10.1.2
既存のテーブルを削除するかどうか聞かれたら、問題ないかどうか確認したうえで yes
と入力します。