72
83

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

GitLab をインストールしよう! (Docker Image)

Last updated at Posted at 2016-12-10

GitLab CE をインストールしよう! (Docker Image 編)

GitLab Advent Calendar 2016 ももう 11 日目ですね。

四日目は omnibus package を使って GitLab をインストールしました。今回は、公式 Docker Image を使って Docker Engine にインストールする方法を紹介します。

GitLab CE/EE は公式で omnibus package をインストール済みの Docker Image が提供されており、とても簡単にセットアップができます。

さらに! Docker for MacDocker for Windows を使えば、Mac や Windows でも GitLab CE を動かすことができます!

インストールの前に

Install Docker Engine を参考に Docker Engine をセットアップしてください。

また、Docker Compose を使ってインストールする場合は、合わせて Install Docker Compose を参考にセットアップしてください。

インストール

GitLab CE のインストール

インストール方法は GitLab Docker images にまとまっています。

ですが、そのままインストールしようとしても、ほとんどの場合ローカルのウェブサーバーや SSHD とポート番号がバッティングしてしまいます。

私の場合は、GitLab CE のインストールのたびに新しい Docker Machine を用意するようにしています。それでも SSH のポートはバッティングするのですが、テスト用のインストールということで諦めています。

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

しばらくセットアップが行われますので、お茶でも飲んで数分ほど待ちましょう!

この後は http://192.168.42.xxx にアクセスしてください。ローカルの Docker Engine を使っている場合は http://localhost でアクセスできると思います。

その後の操作は omnibus package と同様です。

設定を変更する場合は、以下のコマンドを実行します。

$ docker exec -it gitlab vim /etc/gitlab/gitlab.rb

設定を反映して再起動するには、以下のコマンドを実行します。

$ docker exec -it gitlab gitlab-ctl reconfigure

docker exec を使う必要があること以外は omnibus packages の設定方法と何ら変わりません。

GitLab Mattermost/Container Registry のインストール

前回 と同じように GitLab Mattermost/Container Registry もインストールしてみましょう!

$ docker exec -it gitlab bash -c "echo mattermost_external_url \'http://mattermost.example.com\' >> /etc/gitlab/gitlab.rb"
$ docker exec -it gitlab bash -c "echo registry_external_url \'http://registry.example.com\' >> /etc/gitlab/gitlab.rb"
$ docker exec -it gitlab gitlab-ctl reconfigure

/etc/hosts ファイルに名前を登録します。(ローカルの Docker Engine の場合は、IP Address に 127.0.2.1 を使えばいいと思います)

192.168.42.xxx gitlab.example.com mattermost.example.com registry.example.com

これで、http://mattermost.example.comhttp://registry.example.com でアクセスできるようになります!

使った環境を捨てるには、docker rm コマンドを使います。

$ docker rm --force gitlab

Docker Compose を使ってインストールする

Docker Compose を使うと、こういった設定を YAML ファイルに書いておいて、毎回同じように GitLab CE の Docker Container を起動できるので非常に便利です。

社内の GitLab CE の管理者をされている方は、テスト用に何度も GitLab CE のインストールをすると思います。すごく役に立ちます。

gitlab.rb ファイルの代わりに環境変数 GITLAB_OMNIBUS_CONFIG に書くことができます。Docker Compose でインストールする場合はこちらのほうがいいと思います。

私はこういう docker-compose.yml を用意しておいて...

version: '2'

services:
  gitlab:
    image: 'gitlab/gitlab-ce:latest'
    restart: always
    environment:
      GITLAB_OMNIBUS_CONFIG: |
        external_url 'http://gitlab.$DOMAIN'
        mattermost_external_url 'http://mattermost.$DOMAIN'
        registry_external_url 'http://registry.$DOMAIN'
    ports:
      - '80:80'
      - '443:443'
    volumes:
      - '/srv/$DOMAIN/config:/etc/gitlab'
      - '/srv/$DOMAIN/logs:/var/log/gitlab'
      - '/srv/$DOMAIN/data:/var/opt/gitlab'

Docker Compose を使って起動します。

$ docker-compose pull
$ DOMAIN=example.com docker-compose up -d

またお茶でも飲んで、アクセスできるまで待ちましょう。

ちょっと残念なのですが、そのままでは GitLab Mattermost がうまく使えず... gitlab-ctl reconfigure は実行しなければいけないようです。

$ docker-compose exec gitlab gitlab-ctl reconfigure

これで GitLab Mattermost まで使えるようになりました!

最後に

GitLab Docker Image を使うと、omnibus package でのインストールより手軽にインストールできます。

Docker MachineDocker Compose を組み合わせると、GitLab CE をたくさん起動できます。

私は、以前は GitLab CE をインストールするたびに Ubuntu の仮想化環境を用意していましたが、最近はこの方法に切り替えました。手軽にインストールできて、手軽に破棄できるので非常に便利です。

72
83
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
72
83

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?