GitLabを社内や開発環境に構築したいと考えていませんか?GitLabは、Gitリポジトリ管理に加え、CI/CDやコードレビュー機能を備えた強力なツールです。本記事では、Linux上のVirtualBox仮想環境でDockerを活用し、GitLabを構築する手順を詳しく解説します。VirtualBoxを使うことで、ローカルPC上に安全なテスト環境を作成でき、Dockerを利用すれば、簡単にGitLabのインストールや管理が可能になります。
この記事を読むことで、以下のことができるようになります:
✅ VirtualBox上にLinux(Ubuntu)をセットアップする方法
✅ Dockerを導入し、GitLabコンテナを構築する手順
✅ GitLabの基本設定とアクセス方法
✅ GitLabの永続化とデータ管理のポイント
それでは、さっそく構築を進めていきましょう!
1. VirtualBoxにLinux環境を構築する
まずは、GitLabを動作させるためのLinux環境をVirtualBox上に構築します。本記事では、比較的扱いやすくサーバー用途にも適した Ubuntu 22.04 LTS を例に説明します。
VirtualBoxのインストール
VirtualBoxは、公式サイト からダウンロードし、インストールしてください。
- VirtualBoxのインストール
- OSに応じたインストーラーを選択し、インストールを実行
- Windowsの場合は、インストーラーを開いて「次へ」を押しながら進めれば完了
- VirtualBox Extension Packの追加(推奨)
- 公式サイトから VirtualBox Extension Pack をダウンロードし、VirtualBoxの「環境設定」→「機能拡張」からインストール
- これにより、USBサポートやリモート機能が強化されます
Ubuntuの仮想マシンを作成
次に、VirtualBox上にUbuntuの仮想マシン(VM)を作成します。
- VirtualBoxを起動し、「新規作成」をクリック
- 設定を以下のように入力
- 名前:
Ubuntu-GitLab
(自由に設定可) - タイプ:
Linux
- バージョン:
Ubuntu (64-bit)
- 名前:
- メモリサイズを4GB(4096MB)に設定(最低2GB以上推奨)
- 仮想ハードディスクを作成
- 種類: VDI(VirtualBox Disk Image)
- ストレージ: 動的割り当て
- 容量: 20GB以上(GitLabのデータ量を考慮すると50GB程度推奨)
Ubuntuのインストール
- Ubuntuの公式サイトからISOイメージをダウンロード
- VirtualBoxで作成した仮想マシンの「設定」→「ストレージ」から ダウンロードしたISOをマウント
- 仮想マシンを起動し、Ubuntuのインストーラーに従ってインストール
インストールが完了したら、以下のコマンドを実行してシステムを最新状態に更新します。
sudo apt update && sudo apt upgrade -y
これでVirtualBox上のUbuntu環境が整いました。次はDockerをインストールし、GitLabを動かす準備を進めます。
2. Dockerをインストールしてセットアップする
次に、Ubuntu上にDockerをインストールし、GitLabを動かせる環境を整えます。Dockerを使用することで、簡単にGitLabのセットアップや管理が可能になります。
Dockerのインストール
Ubuntuでは、公式リポジトリからDockerをインストールできます。以下のコマンドを順番に実行してください。
sudo apt update
sudo apt install -y docker.io
インストールが完了したら、Dockerが正常にインストールされたかを確認しましょう。
docker --version
出力例(バージョンは異なる可能性があります):
Docker version 20.10.12, build e91ed57
Dockerサービスの自動起動を有効化
Dockerをシステム起動時に自動で起動するよう設定します。
sudo systemctl enable --now docker
念のため、Dockerの稼働状況を確認しておきましょう。
sudo systemctl status docker
「Active: active (running)」と表示されていれば、正常に起動しています。
非rootユーザーでDockerを実行できるようにする(推奨)
デフォルトでは、Dockerのコマンドを実行するたびにsudo
が必要です。利便性を高めるため、現在のユーザーをdocker
グループに追加しましょう。
sudo usermod -aG docker $USER
変更を適用するため、一度ログアウトし、再ログインしてください。その後、以下のコマンドでsudo
なしで実行できることを確認します。
docker ps
エラーが出ずに動作すれば、設定は完了です。
Docker Composeのインストール
GitLabをコンテナで動作させるためには、docker-compose
も必要です。以下のコマンドでインストールしましょう。
sudo apt install -y docker-compose
インストール後、バージョンを確認します。
docker-compose --version
出力例:
docker-compose version 1.29.2, build 5becea4c
これでDockerとDocker Composeのセットアップが完了しました。次に、Dockerを使ってGitLabを構築していきましょう。
3. GitLabをDockerコンテナで構築する
ここでは、Dockerを使用してGitLabをコンテナとして構築する手順を解説します。Dockerを使うことで、環境構築が簡単になり、管理やアップデートも容易になります。
GitLab用のディレクトリを作成
まず、GitLabのデータを管理するためのディレクトリを作成し、そこに移動します。
mkdir -p ~/gitlab && cd ~/gitlab
このディレクトリ内に、GitLabの設定ファイルやデータを保存するためのマウントポイントを作成します。
docker-compose.yml
を作成
GitLabをコンテナとして実行するための設定ファイル docker-compose.yml
を作成します。以下のコマンドを実行してファイルを開きます。
nano docker-compose.yml
以下の内容を記述してください。
version: '3'
services:
gitlab:
image: gitlab/gitlab-ce:latest
restart: always
hostname: 'gitlab.local'
environment:
GITLAB_OMNIBUS_CONFIG: |
external_url '<http://localhost>'
ports:
- "80:80"
- "443:443"
- "22:22"
volumes:
- "./config:/etc/gitlab"
- "./logs:/var/log/gitlab"
- "./data:/var/opt/gitlab"
shm_size: '256m'
この設定では、以下の内容を指定しています。
- GitLabの公式Dockerイメージ (
gitlab/gitlab-ce:latest
) を使用 - ポート設定: HTTP(80), HTTPS(443), SSH(22) を公開
- データの永続化: 設定ファイル、ログ、データをホスト側に保存
記述が終わったら、Ctrl + X
→ Y
→ Enter
で保存して閉じます。
GitLabを起動
以下のコマンドを実行し、GitLabコンテナを起動します。
docker-compose up -d
起動状況を確認するには、以下を実行してください。
docker ps
出力例:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
abcd1234 gitlab/gitlab-ce:latest "/assets/wrapper" 5 minutes ago Up 5 minutes 0.0.0.0:80->80/tcp gitlab
「STATUS」に Up
が表示されていれば、コンテナは正常に稼働しています。
これでGitLabのコンテナが立ち上がりました。次に、Webブラウザでアクセスし、初期設定を行いましょう。
4. GitLabの初期設定とアクセス
GitLabのコンテナが正常に起動したら、Webブラウザからアクセスし、初期設定を行います。
1. GitLabにアクセスする
- Webブラウザを開き、以下のURLにアクセスしてください。
<http://localhost>
※ VirtualBox上のUbuntuにGitLabを構築している場合は、UbuntuのIPアドレス を使用する必要があります。IPアドレスは以下のコマンドで確認できます。
ip a | grep inet
例えば、UbuntuのIPが
192.168.56.101
だった場合、ブラウザでhttp://192.168.56.101
にアクセスしてください。 - GitLabのログイン画面 が表示されたら、次の手順へ進みます。
2. 初回ログインと管理者パスワードの設定
GitLabを初めてセットアップする場合、管理者(root)の初期パスワード が自動生成されています。以下のコマンドで確認しましょう。
docker exec -it gitlab grep 'Password:' /etc/gitlab/initial_root_password
出力例:
Password: abc123def456
このパスワードをメモし、ログイン画面で「root」ユーザーとしてログイン してください。
- ユーザー名:
root
- パスワード: 取得した初期パスワード
ログイン後、新しいパスワードを設定 するよう求められるので、任意のパスワードを設定してください。
3. GitLabの基本設定
ログイン後、GitLabの管理画面が表示されます。初期設定として、以下の項目を確認・設定しておきましょう。
✅ ユーザーの追加
管理者以外のユーザーを追加したい場合は、「Admin Area」 → 「Users」 から新規ユーザーを作成できます。
✅ SSHキーの設定
リポジトリをSSH経由で操作する場合、「ユーザー設定」 → 「SSH Keys」 で公開鍵を登録してください。
✅ GitLabのメール通知設定
/etc/gitlab/gitlab.rb
の gitlab_rails['gitlab_email_enabled']
などを設定することで、メール通知機能を有効化できます。
5. GitLabのデータ永続化とバックアップ
Dockerコンテナを使用してGitLabを運用する場合、コンテナの削除や再起動時にデータが消えないようにするためのデータの永続化と、トラブル時のバックアップが重要です。
1. データの永続化
docker-compose.yml
では、GitLabの設定やリポジトリデータをホストマシンにマウントして保存するように設定済みです。
volumes:
- "./config:/etc/gitlab"
- "./logs:/var/log/gitlab"
- "./data:/var/opt/gitlab"
これにより、コンテナを削除・再作成してもデータが失われることはありません。
データが永続化されていることを確認するには、以下のコマンドを実行してください。
ls -l ~/gitlab
出力例:
drwxr-xr-x 2 root root 4096 Feb 22 12:00 config
drwxr-xr-x 2 root root 4096 Feb 22 12:00 logs
drwxr-xr-x 2 root root 4096 Feb 22 12:00 data
これらのディレクトリにデータが格納されていれば、永続化の設定は正しく機能しています。
2. GitLabのバックアップ
定期的にバックアップを取得することで、障害発生時にデータを復元できます。
手動でバックアップを作成
以下のコマンドを実行すると、GitLabのデータをバックアップできます。
docker exec -t gitlab gitlab-backup create
バックアップは data/backups
ディレクトリ内に作成されます。
ls -l ~/gitlab/data/backups/
出力例:
-rw-r--r-- 1 root root 245M Feb 22 12:30 1708590600_2025_02_22_15.0.0_gitlab_backup.tar
作成された .tar
ファイルを外部ストレージやクラウドにコピーしておくと、万が一の際に復元できます。
3. バックアップデータの復元
万が一、GitLabがクラッシュした場合、バックアップを利用してデータを復元できます。
バックアップを復元する手順
- GitLabコンテナを停止
docker-compose down
- バックアップファイルを
/var/opt/gitlab/backups/
に配置cp 1708590600_2025_02_22_15.0.0_gitlab_backup.tar ~/gitlab/data/backups/
- GitLabコンテナを起動
docker-compose up -d
- バックアップのリストア実行
docker exec -t gitlab gitlab-backup restore BACKUP=1708590600_2025_02_22_15.0.0
- GitLabの設定を再適用
docker exec -t gitlab gitlab-ctl reconfigure docker exec -t gitlab gitlab-ctl restart
これで、以前の状態のGitLabを復元できます。
コマンド整理
- データの永続化 は、
docker-compose.yml
でマウント設定することで対応可能 - バックアップの取得 は
gitlab-backup create
コマンドで手動作成できる - バックアップの復元 には、コンテナを停止 → バックアップ配置 → 復元コマンドを実行
定期的にバックアップを取得し、安全な場所に保管することで、万が一の際にも迅速にGitLabを復旧できます。
まとめ
本記事では、VirtualBox上のLinux環境でDockerを使いGitLabを構築する手順を詳しく解説しました。
✅ VirtualBoxにUbuntuをセットアップ
✅ Docker & Docker Composeをインストール
✅ GitLabをDockerコンテナとして構築
✅ Webブラウザでアクセスし、初期設定を実施
✅ データの永続化とバックアップ方法
この手順を活用すれば、ローカル環境や社内ネットワークで安全にGitLabを運用できます。CI/CDパイプラインやユーザー管理の設定も合わせてカスタマイズし、より便利な開発環境を構築してみてください!
コメント