サーバー

GitlabをDocker on Ubuntu 16.04で使う

githubみたいなサービスを自分で立てられるGitlab。

そのままサーバーに入れるのもいいんですが、ホスト環境を汚さないDockerでのインストールをしてみました。

サーバーはUbuntu Server 16.04 on Intel Compute Stick 2GB。
Gitlabは重いので、4core、4GBメモリ以上を推奨らしいけど、2GB、2GBスワップでもOKのよう。

Docker RUN

[bash]
sudo docker run --detach \
    --hostname localhost \
    --publish 443:443 --publish 80:80 --publish 2222:22 \
    --name gitlab \
    --restart always \
    --volume /srv/gitlab/config:/etc/gitlab \
    --volume /srv/gitlab/logs:/var/log/gitlab \
    --volume /srv/gitlab/data:/var/opt/gitlab \
    gitlab/gitlab-ce:9.0.4-ce.0
[/bash]

本来は、最後のところが、「gitlab/gitlab-ce:lastest」なんだけど、今回は、9.0.4からバックアップを復元するので、バージョン指定をしました。
※バックアップもととバージョンが違うと復元できない。
また、SSHのポートが22番だと、ホストの22番ポートと被るので、2222に変更。

Gitlab docker imageのバージョン一覧

https://hub.docker.com/r/gitlab/gitlab-ce/tags/

Docker runしたあとも、数分を「starting」ステータスになって、localhostにアクセスしても表示されませんが、ちょっと待てばしっかりとGitlabのログイン画面が表示されます。

バックアップから復元

まずは、Dockerコンテナにログイン

[bash]
sudo docker exec -it gitlab bash
[/bash]

バックアップを実行

[bash]
gitlab-rake gitlab:backup:restore BACKUP=1501552106_2017_08_01
[/bash]

※ファイル名全部ではなく、日付までを指定する。拡張子とかまでいれるので、Not existと怒られる。

調査時間を入れて、1時間ほど、わかっていれば、20分もあればGithubライクなサーバーを自分で立てられます。
便利ですね。