GitLabをLinux上のVirtualBox+Docker環境で構築する方法

システム開発

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は、公式サイト からダウンロードし、インストールしてください。

  1. VirtualBoxのインストール
    • OSに応じたインストーラーを選択し、インストールを実行
    • Windowsの場合は、インストーラーを開いて「次へ」を押しながら進めれば完了
  2. VirtualBox Extension Packの追加(推奨)
    • 公式サイトから VirtualBox Extension Pack をダウンロードし、VirtualBoxの「環境設定」→「機能拡張」からインストール
    • これにより、USBサポートやリモート機能が強化されます

Ubuntuの仮想マシンを作成

次に、VirtualBox上にUbuntuの仮想マシン(VM)を作成します。

  1. VirtualBoxを起動し、「新規作成」をクリック
  2. 設定を以下のように入力
    • 名前: Ubuntu-GitLab(自由に設定可)
    • タイプ: Linux
    • バージョン: Ubuntu (64-bit)
  3. メモリサイズを4GB(4096MB)に設定(最低2GB以上推奨)
  4. 仮想ハードディスクを作成
    • 種類: VDI(VirtualBox Disk Image)
    • ストレージ: 動的割り当て
    • 容量: 20GB以上(GitLabのデータ量を考慮すると50GB程度推奨)

Ubuntuのインストール

  1. Ubuntuの公式サイトからISOイメージをダウンロード
  2. VirtualBoxで作成した仮想マシンの「設定」→「ストレージ」から ダウンロードしたISOをマウント
  3. 仮想マシンを起動し、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 + XYEnter で保存して閉じます。

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にアクセスする

  1. 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 にアクセスしてください。

  2. 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.rbgitlab_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がクラッシュした場合、バックアップを利用してデータを復元できます。

バックアップを復元する手順

  1. GitLabコンテナを停止
    docker-compose down
    
  2. バックアップファイルを /var/opt/gitlab/backups/ に配置
    cp 1708590600_2025_02_22_15.0.0_gitlab_backup.tar ~/gitlab/data/backups/
    
  3. GitLabコンテナを起動
    docker-compose up -d
    
  4. バックアップのリストア実行
    docker exec -t gitlab gitlab-backup restore BACKUP=1708590600_2025_02_22_15.0.0
    
  5. 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パイプラインやユーザー管理の設定も合わせてカスタマイズし、より便利な開発環境を構築してみてください!

コメント

タイトルとURLをコピーしました