GitLab CE を使ってみた on WSL2(Docker-Desktop)

Docker-DesktopにオンプレGitLabを立てる方法を学んだのでまとめておく。

注意として、クライアントOSのWindows(Enterprise, Pro, Home)でサーバ用途のアプリ利用はライセンス違反となるので注意。(2. インストールおよび使用権c.制限(v)に違反)

マイクロソフトに問い合わせた結果、Windwos ServerとCALを利用すれば、問題ないとのこと。2022/8時点では、WindowsServer2022がWSL2に対応しているので、WindowsServer2022であれば、下記とほぼ同様の手順で環境構築可能。

CIとかでpagesに生成物を公開するような場合には、データをDocker内で管理していないと、うまく生成物を上げられないので、マウント先はバインドマウントではなく、ボリュームにする。 バインドマウントとボリュームの違いはDockerドキュメントボリュームの利用を確認する。

コンテナを立てる

Powershellのコマンドでやる場合

下記をPowerShellで叩く。それだけ。

  • マウント用のボリュームを作る
docker volume create gitlab_config
gitlab_config
docker volume create gitlab_logs
gitlab_logs
docker volume create gitlab_data
gitlab_data
  • コンテナを生成する
docker run --detach `
  --hostname gitlab.example.com `
  --publish 443:443 --publish 80:80 --publish 22:22 `
  --name gitlab `
  --restart always `
  --volume gitlab_config:/etc/gitlab `
  --volume gitlab_logs:/var/log/gitlab `
  --volume gitlab_data:/var/opt/gitlab `
  --shm-size 256m `
  gitlab/gitlab-ce:latest

docker-compose.ymlでやる場合

下記をdocker-compose.ymlに保存する。

version: '3.1'

services:
  gitlab:
    image: gitlab/gitlab-ce:latest
    shm_size: 256m
    container_name: gitlab
    restart: always
    hostname: gitlab.example.com
    ports:
      - 443:443
      - 80:80
      - 22:22
    volumes:
      - gitlab_config:/etc/gitlab
      - gitlab_logs:/var/log/gitlab
      - gitlab_data:/var/opt/gitlab    

volumes:
  gitlab_config:
  gitlab_logs:
  gitlab_data:

GitLabにアクセスする

ブラウザで127.0.0.1にアクセスする。コンテナが立ち上がるまでに少し時間がかかるので待つ。アクセスできない間は、応答がないか下記の図が表示される。

gitlab_502

ログイン画面が表示されたら、コンテナ内の/etc/gitlab/initial_root_passwordを開いて、rootの初期パスワードを確認して、ログインする。ログインパスワードは24時間で削除されるので注意。その場合、コンテナ内に入って、GitLabのパスワードリセットを実施する。参考

gitlab_init

ログインできました。

gitlab_initial

参考