5
9

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.

docker-composeでGitLab

Last updated at Posted at 2021-06-13

はじめに

GitLabをローカルで立ち上げようと思い立ち、docker-composeならすぐだろうと思ったがそんなことはなかったのでメモ。
gitlab.rbファイルの編集をしないと立ち上げたWebに接続できなかったというお話です。

環境(DockerホストPC)

  • ホスト名:seiryu
  • IP: 192.168.0.4/24
  • OS: Ubuntu 21.04 Server (on Hyper-V Server 2019)
  • docker ver: 20.10.7
  • docker-compose ver: 1.29.2
バージョン詳細
$ uname -a
Linux seiryu 5.11.0-18-generic #19-Ubuntu SMP Fri May 7 14:22:03 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
$ docker -v
Docker version 20.10.7, build f0df350
$ docker-compose -v
docker-compose version 1.29.2, build 5becea4c

導入手順

  1. docker-compose.yml作成
  2. docker-compose up -d実行
  3. 接続確認 <-- ここでハマる:worried:

docker-compose.yml

docker-compose.yml
version: '3'
services:
  web:
    image: 'gitlab/gitlab-ce:latest'
    restart: always
    environment:
      GITLAB_OMNIBUS_CONFIG: |
        external_url 'http://192.168.0.4:8929'
        gitlab_rails['gitlab_shell_ssh_port'] = 2224
    ports:
      - '8929:80'
      - '2224:22'
    volumes:
      - '/srv/gitlab/config:/etc/gitlab'
      - '/srv/gitlab/logs:/var/log/gitlab'
      - '/srv/gitlab/data:/var/opt/gitlab'
  • GitLab Docs1記載のdocker-compose.ymlをベースに作成
  • emvironmentの内容はちゃんと調べてはいないが、見よう見まねで修正

実行・接続確認(ハマりポイント)

上記ymlと同じフォルダにてdocker-composeを実行し、curlで接続できるか確認。

接続失敗
$ docker-compose up -d
$ curl http://localhost:8929
curl: (52) Empty reply from server

何も出てこない…

対応方法

たまたま見つけたページ2にgitlab.rbの設定も必要との記載を発見。
この環境ではdocker-compose upを実行した際に/srv/gitlab/config/gitlab.rbファイルが作成されているので、このファイルに以下の2行を追加。

/srv/gitlab/config/gitlab.rb(コメントのない行が追加行)
# external_url 'GENERATED_EXTERNAL_URL'
external_url 'http://192.168.0.4:8929'
############## (中略)#################
# nginx['listen_port'] = nil
nginx['listen_port'] = 80

コンテナ再起動・確認

成功
$ docker-compose stop
$ docker-compose start
$ curl http://localhost:8929
<html><body>You are being <a href="http://localhost:8929/users/sign_in">redirected</a>.</body></html>
$ curl http://192.168.0.4:8929
<html><body>You are being <a href="http://192.168.0.4:8929/users/sign_in">redirected</a>.</body></html>

接続できた!:relaxed:

終わりに

gitbucketはdocker-composeで難なく使えたので甘く見てたら、こちらは予想外に時間がかかった。
docker-compose.ymlだけで起動できるようにしてみたいな。

追記(2021.6.19)

ここまで書いたら気づきそうなものだけれど、ちょっと疲れてたかな。
docker-compose.ymlを以下のように修正すればgitlab.rbは変更不要でした。

docker-compose.yml(修正版)
version: '3'
services:
  web:
    image: 'gitlab/gitlab-ce:latest'
    restart: always
    environment:
      GITLAB_OMNIBUS_CONFIG: |
        external_url 'http://192.168.0.4:8929'
        gitlab_rails['gitlab_shell_ssh_port'] = 2224
        nginx['listen_port'] = 80                       # この行を追加
    ports:
      - '8929:80'
      - '2224:22'
    volumes:
      - '/srv/gitlab/config:/etc/gitlab'
      - '/srv/gitlab/logs:/var/log/gitlab'
      - '/srv/gitlab/data:/var/opt/gitlab'

GitLab Docs1 に、以下の通りdocker-compose.ymlにgitlab.rbの設定を記載できる旨記述があったんですが完全に見落としてました。
GITLAB_OMNIBUS_CONFIGの値として設定を書けとのことです。(複数設定は改行コードで区切る)

記述箇所
    environment:
      GITLAB_OMNIBUS_CONFIG: |
        external_url 'https://gitlab.example.com'
        # Add any other gitlab.rb configuration here, each on its own line  ← この部分

あと、いろんなとこで書いてますがdocker-compose up -dを実行してから接続できるようになるまで時間がかかるので、のんびり待つのが吉です。

5
9
0

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
5
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?