今更だけど、Dockerを使ってGitLabを立ち上げる

# はじめに
現場のソースコード管理が、Subversionを使っていて、レビューの記録がとれてなかったり、差分の確認が大変だったりと、実際に問題も起こったりしているので、
GitLabを使えるように提案しようと思います。残念ながらサーバを用意するのは難しそうなので、共有PCにDocker入れて、そこで公開できるようにしよう思っています。

# 環境
WSL2
Ubuntu 24.04
Docker 27.4.1

※すでにWSL2とか、Dockerがインストールされている前提で話を進めます。

# やってみる
## Docker compose
適当なフォルダに、docker-compose.ymlを作成する

```yml:docker-compose.yml
  gitlab:
    image: gitlab/gitlab-ce:latest
    restart: always
    ports:
      - "443:443"
      - "80:80"
      - "22:22"
    volumes:
      - ./gitlab/config:/etc/gitlab
      - ./gitlab/logs:/var/log/gitlab
      - ./gitlab/data:/var/opt/gitlab
```

この設定でデータとかは、カレントディレクトリ配下のgitlabディレクトリに格納されます。

## 起動
```bash
$ docker compose up -d
```

```bash
$ docker ps
CONTAINER ID   IMAGE                     COMMAND                  CREATED          STATUS                    PORTS                                                                              NAMES
cd19abc42cee   gitlab/gitlab-ce:latest   "/assets/wrapper"        14 minutes ago   Up 14 minutes (healthy)   0.0.0.0:80->80/tcp, :::80->80/tcp, 22/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp   gitlab-gitlab-1
```

```bash
$ docker exec -it cd19abc42cee cat /etc/gitlab/initial_root_password
# WARNING: This value is valid only in the following conditions
#          1. If provided manually (either via `GITLAB_ROOT_PASSWORD` environment variable or via `gitlab_rails['initial_root_password']` setting in `gitlab.rb`, it was provided before database was seeded for the first time (usually, the first reconfigure run).
#          2. Password hasn't been changed manually, either via UI or via command line.
#
#          If the password shown here doesn't work, you must reset the admin password following https://docs.gitlab.com/ee/security/reset_user_password.html#reset-your-root-password.

Password: LVdoHphSqQZvb76e9C6RlZ/Hcwkb/nfZrlzIIZ1F3bM=

# NOTE: This file will be automatically deleted in the first reconfigure run after 24 hours.
```

## ログイン
はい、ここまで出来たら、http://localhost に接続してください。しばらくすると、以下の画面が表示されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/132118/692133e5-a02a-0df4-21db-f76df888073a.png)

ユーザはroot、パスワードは前段で取得した長いものを利用してください。
ログイン後、適宜パスワード変更しましょう。

## GitLabの設定

### 日本語化
ログイン後、左上のアイコン（緑色のやつ）から、Preferencesに遷移してください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/132118/f2129aea-bc6a-1a81-2403-7d50d85e1ced.png)

LocalizationでLanguageに「日本語」を選んで、画面下部の「保存」を押下します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/132118/3f555bc0-396f-e0a2-c621-fef97c306027.png)

これで別の画面に遷移すると、日本語化されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/132118/12b171f3-b154-a4c2-1c01-6268fe4d8d47.png)

### サインアップの無効化
この状態だと誰でもサインアップできるので、無効化しておきます。
警告の「無効化」を押下すると、以下の画面が表示されますので、適宜設定してください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/132118/a7b44fd1-387b-5bb1-7833-1b7378a86a56.png)

:::note warn
外部に公開する場合は、きちんとセキュリティ設定をしましょう。
※ここでは説明をしません。
:::

# ユーザの作成
ユーザを作成していきます。残念ながらメールは使えないので、手動でアカウントを作成してあげる必要がありそうです。

Administratorのアカウントで、トップ画面の「人を追加」
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/132118/f798a3e3-a514-b297-3fc3-bbe032d763ab.png)

名前、ユーザ名、メールアドレスが必須になります（ユーザ名でログインできます）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/132118/8bcc208a-a8e1-2150-7c70-9d51f1b8571f.png)

## 初期パスワードを設定する
作成が完了したら、右上の「編集」ボタンを押下して初期パスワードを設定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/132118/8ab55d80-4955-f0ba-a31e-5a47fd537539.png)

## 作ったユーザでログインする
作成したユーザ名と、パスワードでログインします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/132118/a1b5da4f-db5a-d0f6-8b1a-a5f4944f5ac7.png)

初回ログイン時に、パスワード変更を要求されるので、新しいパスワードを設定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/132118/3e7ffadc-ddab-4010-1a80-2b4c9b5a71b4.png)

はい。これでGitLabを使えるようになりました。

# さいごに
ここまで簡単にできました。
細かい設定はおいおいやっていきます。

:::note info
なお、他のPCから接続したい場合は、ファイヤーウォールの穴あけとか必要だと思うので、それは自身の環境に合わせてやってみてください。
::::