GitLabサーバをDockerを使ってお手軽に立てる

GitLab には、オープンソース版である GitLab CE (Community Edition) があります。
GitLab CE であれば、自前でサーバにインストールして使えます。

社内 LAN 等でソース管理するのであれば、この GitLab CE を使うことになります。

本記事では、GitLab CE にある Docker イメージを使って、検証用 GitLab サーバを立ち上げる方法を紹介します。

GitLab CE の Docker イメージ

Docker イメージは gitlab/gitlab-ce:latest で、Docker Hub から pull できます。

GitLab Docker images」に使い方の説明あります。

注意点として、Windows の Docker はサポートしていないと書かれています。

GitLab CE の Docker イメージのオプション

Docker イメージで使えるオプションを説明します。

起動のコマンドのサンプルは以下です。

sudo docker run --detach \
  --hostname gitlab.example.com \
  --publish 443:443 --publish 80:80 --publish 22: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:latest

オプションの意味を説明していきます。

–detatch
: バックグラウンドで起動するようデタッチ

–hostname
: コンテナにホスト名 gitlab.example.com をセットする

–publish
: ポート 443, 80, 22 を公開する

–name
: gitlab というコンテナ名にする

–restart always
: Docker デーモンの起動時やホスト OS の起動時に再起動する

–volume
: ホストの/srv/gitlab をコンテナ内にマウントする。/var/opt/gitlab にアプリ(git リポジトリなど)があり、/var/opt/gitlab にログがあり、/var/opt/gitlab に設定ファイルがある。

GitLab 用コンテナ用の Makefile

コンテナ操作用のコマンドでどういうオプションを使うのかを残すために Makefile を用意しましょう。

GITLAB_OMNIBUS_CONFIG は許可する外部 URL を設定ファイルを修正せずに置き換える環境変数です。

使用方法は default に書いています。

hostname := gitlab.monkey.local
port_http := 8888
container_name := gitlab

default:
    @echo "<使い方>"
    @echo up : コンテナ起動
    @echo down : コンテナ停止
    @echo status : コンテナ内ステータス確認(nginxがあれば良さそう)

up:
    docker run -d --rm --name $(container_name) --hostname $(hostname) -p $(port_http):80 -v ${PWD}/data:/var/opt/gitlab:delegated -v ${PWD}/logs:/var/log/gitlab:delegated -v ${PWD}/config:/etc/gitlab:delegated --env GITLAB_OMNIBUS_CONFIG="external_url 'http://$(hostname)/'; gitlab_rails['lfs_enabled'] = true;" gitlab/gitlab-ce:latest

down:
    docker stop $(container_name)

status:
    docker container exec $(container_name) gitlab-ctl status

Gitlab にアクセスしてみる

http://gitlab.monkey.local/」へアクセスすると、「Change your password」と root のパスワード変更を求められるので変更しましょう。
これで、管理者 root ユーザで作業できます。

まとめ

今回は GitLab CE の Docker イメージを使って、簡単に GitLab サーバを構築しました。

Git

Posted by crz33