🦊

[WSL + Docker] GitLab CEの環境構築(メモ)

に公開

概要

Ubuntu(WSL)上にDockerを用いてGitLab CEサーバーを構築する際の手順、メモ。
ホストPCからのアクセスを確認する。

環境詳細

  • Windows 11 25H2
  • Linux 用 Windows サブシステム 2.6.3
  • Docker version 29.1.5

WSL

参考

WSLのインストール

wsl --install

インストール可能なディストリビューションの表示

wsl -l -o

任意の名前でディストリビューションのインストール

wsl.exe --install -d [Distro] --name [Name]

インストール済みのディストリビューションの表示

wsl -l -v

ディストリビューションの削除

wsl --unregister [Distro]

Docker

Docker Engineをインストールする。基本的にドキュメントに沿ってコピペしていけばOK。

サンプルイメージの実行

ドキュメントに従ってDockerの導入後、hello-worldイメージが実行できるか確認する。

sudo docker run hello-world

ユーザーをdockerグループに追加

一般ユーザーでdockerコマンドを実行できるようグループに追加する。

# ユーザーをdockerグループに追加
sudo usermod -aG docker $USER

# 変更を適用するためubuntu再起動

# sudoなしで実行できるか
docker run hello-world

コンテナ一覧の表示

docker ps

起動していないものも含める場合。

docker ps -a

コンテナの停止

docker stop [ID]

# 強制停止
docker kill [ID]

既存のコンテナの起動

docker start [ID]

コンテナの再起動

docker restart [ID]

コンテナの削除

IDはdocker ps -aで確認したもの。

docker rm [ID]

GitLab CE

Docker Composeを使用してコンテナを作成する。
基本的にはドキュメントに従い、一部権限の設定などを追加している。

ボリュームの作成

sudo mkdir -p /srv/gitlab/{config,logs,data}

ボリュームディレクトリの所有者を変更

上で作成したボリュームディレクトリの所有者を現在のユーザーに変更。

sudo chown -R $USER:$USER /srv/gitlab

環境変数の設定

echo 'export GITLAB_HOME=/srv/gitlab' >> ~/.bashrc

# 現在のターミナルに反映
source ~/.bashrc

docker-compose.ymlの作成

mkdir -p ~/gitlab-ce
touch ~/gitlab-ce/docker-compose.yml

docker-compose.ymlの編集

VSCodeで編集する。(ホストPCにVSCodeがインストールされていること)

cd ~/gitlab-ce

# ホストPCのVSCodeで開く
code .

docker-compose.ymlに以下を追記。

docker-compose.yml
services:
  gitlab:
    image: gitlab/gitlab-ce:latest
    container_name: gitlab
    restart: always
    hostname: 'gitlab.example.com'
    ports:
      - "80:80"    # HTTP
    volumes:
      - "${GITLAB_HOME}/config:/etc/gitlab"
      - "${GITLAB_HOME}/logs:/var/log/gitlab"
      - "${GITLAB_HOME}/data:/var/opt/gitlab"

コンテナの起動

cd ~/gitlab-ce
docker compose up -d

起動の確認

STATUSがhealthyになっていれば起動完了。(起動中はhealth: starting)

docker ps

初回管理者パスワードの確認

起動後、初期パスワードを確認。

sudo docker exec -it gitlab grep 'Password:' /etc/gitlab/initial_root_password
> Password: xxxxx

ログイン

ホストPCのブラウザからhttp://localhostにアクセスし、以下の情報でサインイン。

  • ユーザー名: root
  • パスワード: 上記で確認したパスワード

Discussion