Skip to content

Docker Compose で GitLab を起動する

GitLab には Enterprise Edition と Community Edition のふたつがあります。 Enterprise Edition であっても「無料版」があるので、「どちらを利用するか?」は選択が必要です。 Edition の違いについては Which GitLab edition is right for you? に記載されています。

今回は GitLab Community Edition を Docker Compose で起動する手順をメモしておきます。 尚、今回は CI/CD を想定しておらず、Runner は用意しません。 尚、GitLab の Docker コンテナイメージは gitlab/gitlab-ce で公開されています。

検証環境

対象 バージョン
macOS 14.2.1
Docker Engine - Community 25.0.3
Docker Compose 2.24.5

Docker Compose で起動する

作業用のディレクトリを作成します。

1
2
mkdir gitlab
cd gitlab/

作業用ディレクトリ内に、今回は以下の内容で docker-compose.yml ファイルを作成しました。 external_url は実際に GitLab を更改する FQDN に合わせて修正します。 その他、メール送信用のパラメータなども環境に合わせて調整します。 共有メモリである /dev/shm の容量を定義する shm_size も環境に合わせて調整します。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
version: '3.7'
services:
  app:
    container_name: 'gitlab'
    image: gitlab/gitlab-ce
    restart: unless-stopped
    hostname: 'gitlab.example.com'
    ports:
      - '2022:22'
      - '8080:80'
    volumes:
      - ./data:/var/opt/gitlab
      - ./logs:/var/log/gitlab
      - ./config-app:/etc/gitlab
    shm_size: '256m'
    environment:
      GITLAB_OMNIBUS_CONFIG: |
        external_url 'http://ADDRESS'
        gitlab_rails['smtp_enable'] = true
        gitlab_rails['smtp_address'] = 'mail.example.com'
        gitlab_rails['smtp_port'] = 587
        gitlab_rails['smtp_user_name'] = 'USER'
        gitlab_rails['smtp_password'] = 'PASSWORD'
        gitlab_rails['smtp_domain'] = 'example.com'
        gitlab_rails['smtp_authentication'] = 'login'
        gitlab_rails['smtp_enable_starttls_auto'] = true
        gitlab_rails['gitlab_email_enabled'] = true
        gitlab_rails['gitlab_email_from'] = 'gitlab@example.com'
        gitlab_rails['gitlab_email_display_name'] = 'GitLab'
        gitlab_rails['gitlab_email_reply_to'] = 'noreply@example.com'
        nginx['listen_port'] = 80
        nginx['listen_https'] = false
        letsencrypt['enable'] = false
volumes:
  data:
  logs:
  config-app:

ここまでの準備が完了したら Docker Compose で起動します。

1
docker compose up -d

ブラウザで http://ADDRESS:8080 にアクセスしたらログインフォームが表示されます。

file

初期ユーザ名は root です。 パスワードはコンテナ作成時にランダムなものが発行されている為、以下のコマンドで確認します。 もしくは、今回はボリュームをマウントしている為、(コンテナ内から実行しなくても) cat config-app/initial_root_password でも同内容を確認出来ます。

1
docker exec -it gitlab grep 'Password:' /etc/gitlab/initial_root_password

実際の実行例は以下です。

1
2
# docker exec -it gitlab grep 'Password:' /etc/gitlab/initial_root_password
Password: ABCDEFGHIJABCDEFGHIJABCDEFGHIJABCDEFGHIJABC=

ログイン出来ると以下のような画面が表示されます。

file

root ユーザの初期パスワードを変更する

最初に root ユーザの初期パスワードを変更します。

Step.1

root ユーザでログインしたら左上の画像 (※ ユーザごとのアイコン) をクリックし、Edit profile をクリックします。

file

Step.2

左側のメニューから Password をクリックします。

file

Step.3

Current password には現在のパスワードを、New passwordPassword confirmation には変更後の新パスワードを入力し、Save password をクリックします。 これでパスワード変更は完了です。

file

ユーザを追加する

root では無い、普段利用するユーザを追加します。

Step.1

画面左下の Admin Area をクリックします。

file

Step.2

左側のメニューから Users をクリックします。

file

画面右上の New user をクリックします。

Step.3

file

Step.4

必要なパラメータを入力したら Create user をクリックし、ユーザ作成を完了します。

file