Raspberry Pi 5×Pironman 5 Max を活用した GitLab 構築事例

  • URLをコピーしました!

※本ページはアフィリエイト広告を利用しています

本記事では Raspberry Pi 5 と Pironman 5 Max を組み合わせて GitLab サーバーを構築する方法 を紹介します。

Raspberry Pi 5 が持つ PCIe 拡張性と、Pironman 5 Max のデュアル M.2 スロットを活用し、SSD を RAID1 構成で運用することで、高速かつ冗長性のある自宅開発環境を実現できます。

RAID 構築までは完了している前提で、Docker を使って GitLab をセットアップする流れを解説します。

目次

GitLabとは

GitLab は、ソフトウェア開発におけるリポジトリ管理や CI/CD(継続的インテグレーション/継続的デリバリー)を提供する統合プラットフォームです。GitHub のようにソースコードのバージョン管理が可能であるだけでなく、以下のようなメリットがあります。

  • 自己ホスティング可能:クラウドに依存せず、ローカルサーバーや自宅サーバーにインストールできる。
  • CI/CD 機能が標準搭載:外部ツール不要で自動テストやデプロイを組み込める。
  • ユーザー・権限管理が柔軟:小規模チームから大規模組織まで対応可能。
  • オープンソース版(CE)が利用可能:無料で十分強力な機能が使える。

これにより、プライベート環境での安全な開発や、学習用・小規模チーム開発環境の構築に最適です。

前提条件

  • Raspberry Pi 5(64bit OS インストール済み)
  • PCIe 接続の SSD 2台で RAID1 を構成済み(マウント先: /mnt/raid
  • ネットワークに接続されていること

RAIDの構築方法については以下の記事で解説していますので、事前に済ませておいてください。

使用するハードウェア

Raspberry Pi 5

PCIe バスが実装されており、これまでの Raspberry Pi シリーズよりも高速な大容量ストレージを直接接続できます。本記事ではこの特徴を活かし、SSD を用いた本格的なサーバー運用を可能にします。

Raspberry Pi
¥12,700 (2025/10/04 14:29時点 | Amazon調べ)
\プライム感謝祭先行セール開催中!/
Amazon

Pironman 5 Max

Raspberry Pi 5 向けのケース兼拡張ユニットで、デュアル M.2 スロットを備えています。これにより 2 台の SSD を接続し、RAID1 構成による冗長化と高速化を実現できます。詳細は以下の記事でも紹介しています。

以下の写真のように2つのSSDを搭載することが可能ですので、大切なデータを保存するサーバー運用にも最適なケースです。

このケースの詳細については以下の記事で解説していますのであわせてご覧ください。

1. Docker のインストール

今回は Raspberry Pi に GitLab を直接インストールするのではなく、Docker コンテナ上で動かす方法を採用します。これにより以下のメリットがあります。

  • 環境の分離:OS 環境と独立して GitLab を管理でき、システム更新の影響を受けにくい。
  • 導入が容易:複雑な依存関係や設定を Docker イメージが吸収してくれるため、数コマンドで導入可能。
  • アップデートや移行が簡単:新しいバージョンへはイメージ差し替えで対応でき、RAID1 SSD への移行やバックアップも容易。
  • クリーンな再構築:トラブルがあった場合もコンテナを削除・再起動するだけで復旧可能。

このため、Raspberry Pi 上での軽量かつ安定した GitLab 運用には Docker が最適といえます。

まずは Docker 本体と Docker Compose を導入します。

curl -fsSL https://get.docker.com | sudo sh
sudo usermod -aG docker $USER

グループ追加を反映させるため、一度ログアウト&再ログインするか、以下を実行します。

newgrp docker

インストール確認:

以下のコマンドを実行してバージョンを確認します。

docker --version
docker compose version

以下のようにDockerのバージョンが表示されたら正常にインストールが完了しています。

docker compose version
Docker version 28.4.0, build d8eb465
Docker Compose version v2.39.4

2. GitLab 用ディレクトリの作成

SSD 上に GitLab 用ディレクトリを作ります。

sudo mkdir -p /mnt/raid/gitlab/{config,data,logs}
sudo chown -R 1000:1000 /mnt/raid/gitlab

これで GitLab の設定・データ・ログを SSD 側で永続化できます。


3. docker-compose.yml の作成

GitLab を Docker で運用する際には、サービスの設定を記述した docker-compose.yml を用意する必要があります。これは「どのコンテナイメージを使うか」「どのポートを公開するか」「どのディレクトリにデータを保存するか」などをまとめた設計図のようなものです。

これを定義しておくことで、docker compose up -d というシンプルなコマンド一つで、同じ環境を何度でも再現できるようになります。また、バックアップや移行の際にもこのファイルがあることで運用が容易になります。

作業用ディレクトリを作り、docker-compose.yml を配置します。

mkdir -p ~/gitlab
cd ~/gitlab
nano docker-compose.yml

内容は以下の通りです。

services:
  gitlab:
    image: gitlab/gitlab-ce:18.1.6-ce.0   # arm64対応の安定版を指定
    container_name: gitlab
    hostname: gitlab.local
    restart: unless-stopped
    ports:
      - "80:80"
      - "443:443"
      - "2222:22"   # SSH用(Piの22と競合しないように)
    volumes:
      - /mnt/raid/gitlab/config:/etc/gitlab
      - /mnt/raid/gitlab/data:/var/opt/gitlab
      - /mnt/raid/gitlab/logs:/var/log/gitlab
    shm_size: "512m"
    environment:
      TZ: "Asia/Tokyo"
      GITLAB_OMNIBUS_CONFIG: |
        external_url 'http://<RaspberryPiのIP>'
        nginx['listen_port'] = 80
        gitlab_rails['gitlab_shell_ssh_port'] = 2222
        registry['enable'] = false

external_url は環境に合わせて IP アドレスやドメインに変更してください。

4. GitLab の起動

イメージを取得して GitLab を起動します。

docker compose up -d
docker compose logs -f

初回はセットアップに10分以上かかることがあります。状態は以下で確認できます:

docker ps --format 'table {{.Names}}\t{{.Status}}\t{{.Ports}}'

STATUS(healthy) になれば起動完了です。

5. 初期ログイン

初期 root パスワードを確認します。

docker exec -it gitlab bash -lc "cat /etc/gitlab/initial_root_password"

ブラウザから http://<Raspberry PiのIP> にアクセスし、ユーザー名 root と上記パスワードでログインしてください。初回ログイン後はパスワードを変更しましょう。

6. ユーザー作成とログイン管理

初回ログインは root ユーザーで行いますが、日常的な利用は 専用ユーザーを作成して運用するのがおすすめです。これはセキュリティや管理の観点から重要です。

ユーザーの作成方法

管理者 (root) でログイン後、画面左下「Admin」ボタンから Admin Area を開く。

左のメニューから Users を選び、New user ボタンをクリック。

画面右上の「New user」をクリック。

ユーザー名、表示名、メールアドレス、パスワードを入力して作成。

これにより、チームメンバーごとにアカウントを発行し、権限を分けて利用できます。

ユーザー作成の意義

  • セキュリティ強化:root アカウントの利用を最小限にすることで、誤操作や情報漏洩リスクを低減。
  • 権限管理:開発者、管理者など役割ごとにアクセスレベルを分けられる。
  • 活動履歴の可視化:誰がどのコミットや操作を行ったかを追跡でき、チーム開発での透明性が向上。

7. SSH での利用

GitLab では HTTP(S) 経由でのリポジトリ利用も可能ですが、実運用では SSH 経由のアクセスが推奨されます。これは認証を鍵で安全に行えることや、push/pull 時の利便性が高いことが理由です。

また、今回の環境では GitLab コンテナの SSH をホスト側 2222 ポートに割り当てているため、通常の Pi の SSH ポート(22)と競合しません。

Git リポジトリを SSH で利用する場合はポート 2222 を指定します。

git clone ssh://git@<RaspberryPiのIP>:2222/<group>/<project>.git

8. 運用のポイント

  • バックアップdocker exec -t gitlab gitlab-backup create /mnt/raid/gitlab/config と合わせて別媒体に退避しましょう。
  • リソース管理:Raspberry Pi ではメモリ不足が起こりやすいため、スワップを 2〜4GB 用意しておくと安定します。
  • 監視docker exec -it gitlab bash -lc "gitlab-ctl status" で各サービスの状態を確認できます。

まとめ

今回解説した手順で、Raspberry Pi 5 上の RAID1 SSD に GitLab を構築できます。

Pironman 5 Maxを活用することでRAID運用による冗長性をも確保できるうえ、インテリアとしてもおしゃれでおすすめです。

高速かつ冗長性のある SSD ストレージ上で運用することで、microSD 運用の不安定さを解消できます。

小規模チームや個人プロジェクトのリポジトリ管理に最適です。

よかったらシェアしてね!
  • URLをコピーしました!

コメント

コメントする

CAPTCHA


目次