🦊
[WSL + Docker] GitLab CEの環境構築(メモ)
概要
Ubuntu(WSL)上にDockerを用いてGitLab CEサーバーを構築する際の手順、メモ。
ホストPCからのアクセスを確認する。
環境詳細
- Windows 11 25H2
- Linux 用 Windows サブシステム 2.6.3
- Docker version 29.1.5
WSL
参考
- Microsoft: WSL を使用して Windows に Linux をインストールする方法
WSLのインストール
wsl --install
インストール可能なディストリビューションの表示
wsl -l -o
任意の名前でディストリビューションのインストール
wsl.exe --install -d [Distro] --name [Name]
インストール済みのディストリビューションの表示
wsl -l -v
ディストリビューションの削除
wsl --unregister [Distro]
Docker
Docker Engineをインストールする。基本的にドキュメントに沿ってコピペしていけばOK。
- Docker: Install using the apt repository
サンプルイメージの実行
ドキュメントに従って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を使用してコンテナを作成する。
基本的にはドキュメントに従い、一部権限の設定などを追加している。
- GitLab Docs: DockerコンテナにGitLabをインストールする
ボリュームの作成
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