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 で起動する¶
作業用のディレクトリを作成します。
作業用ディレクトリ内に、今回は以下の内容で docker-compose.yml ファイルを作成しました。 external_url は実際に GitLab を更改する FQDN に合わせて修正します。 その他、メール送信用のパラメータなども環境に合わせて調整します。 共有メモリである /dev/shm の容量を定義する shm_size も環境に合わせて調整します。
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 で起動します。
ブラウザで http://ADDRESS:8080 にアクセスしたらログインフォームが表示されます。

初期ユーザ名は root です。 パスワードはコンテナ作成時にランダムなものが発行されている為、以下のコマンドで確認します。 もしくは、今回はボリュームをマウントしている為、(コンテナ内から実行しなくても) cat config-app/initial_root_password でも同内容を確認出来ます。
実際の実行例は以下です。
# docker exec -it gitlab grep 'Password:' /etc/gitlab/initial_root_password
Password: ABCDEFGHIJABCDEFGHIJABCDEFGHIJABCDEFGHIJABC=
ログイン出来ると以下のような画面が表示されます。

root ユーザの初期パスワードを変更する¶
最初に root ユーザの初期パスワードを変更します。
Step.1¶
root ユーザでログインしたら左上の画像 (※ ユーザごとのアイコン) をクリックし、Edit profile をクリックします。

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

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

ユーザを追加する¶
root では無い、普段利用するユーザを追加します。
Step.1¶
画面左下の Admin Area をクリックします。

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

画面右上の New user をクリックします。
Step.3¶

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