コンテンツにスキップ

DoeckerでGitLabコンテナを作る

GitLab.comには、オープンソース版であるGitLab CE (Community Edition) があります。自前でサーバ立てて、インストールして使えます。社内LAN等でソース管理するのであれば、このGitLab CEが良いと思います。

GitLab CEにのDockerイメージがあるので、それを使って検証用GitLab CEを立ち上げる方法を紹介します。

GitLab CEのDockerイメージ

"gitlab/gitlab-ce:latest"です。Docker Hubからpullできます。"GitLab Docker images"に使い方が簡単に書いてあります。注意点として、WindowsのDockerはサポートしていないと書かれています。

公式のコンテナ起動コマンドを読んで必要なオプションを理解する

"GitLab Docker images"に書かれているコンテナ起動コマンドを読んで理解します。

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ユーザで作業できます。


最終更新日: 2020年4月24日