最近、会社でDockerでGitLabを構築したので書いてみます。

なお、Dockerを使わない場合の構築方法はこちらに書いてます

環境


  • Ubuntu 16.04
  • GitLab CE(Omnibus) 9.0.4

公式のDockerイメージを使用します。公式のドキュメントはこちらです。

Docker composeを書く


Docker composeを使った方が何かと楽なのでdocker-compose.ymlを作ります。今回、ホストのポートは8000番を使用します。

1
version: '2'
services:
  gitlab:
    image: 'gitlab/gitlab-ce:latest'
    restart: always
    ports:
      - '8000:80'
    volumes:
      - '/srv/gitlab/config:/etc/gitlab'
      - '/srv/gitlab/logs:/var/log/gitlab'
      - '/srv/data:/var/opt/gitlab'

会社だとdocker-compose.ymlと同階層のディレクトリ下にマウント(例えば./data:/var/opt/gitlab)しているのですが、家で同じようにやると/var/opt/gitlabをマウントさせるとエラーで起動できなかったので全てsrvディレクトリ下にマウントさせてます。家だとUbuntuのデスクトップ版でやってるからでしょうか…?この辺りもう少しLinuxの知識をつけないといけないと感じました。

起動


このあとdocker-compose upで起動します。結構時間が掛かりますが、おとなしく待ちましょう。

設定を変更する


一度起動すると/srv/gitlab/configgitlab.rbというファイルができているので、そちらを変更します。とりあえず、動かすだけだとexternal_urlを変更するだけです。具体的にはexternal_url 'http://192.168.10.20'のような形です。ローカルドメインとか割り当てる場合は/etc/hostsとかWebサーバの設定とかも頑張ってください。

私はgitlab.rbで設定したいので、下記の方法ではやってませんがdocker-compose.ymlenvironmentキーに変数をセットする方法もあります。その場合はdocker-compose.ymlに下記の記述を追記します。

1
environment:
  GITLAB_OMNIBUS_CONFIG: |
    external_url 'http://192.168.10.20'

再起動する


docker-compose downでコンテナ終了後にdocker-compose upで再度起動します。

ログインする


あとはexternal_urlで指定したアドレスにアクセスするとログイン画面が表示されます。

rootユーザのパスワードの変更が求められるのでパスワードを変更します。

以上です。