Gitlabのインストール方法

2018年03月20日

  • ITインフラ
  • QNAP機能紹介
前回は、Redmineのインストール方法 > をご紹介しました。
今回は『QNAPに「Gitlab」をインストールする方法』を説明します。

ファイル管理を安全に効率よくコストを押さえて…
そんな要望を実現します。


クラウドだと安全性が心配…
クローズドされた環境でも使用できます。外部に置くことができないデータの取り扱いも安心です。

SVNだと並行開発が難しい…
ブランチを切れるので複数人での開発がスムーズに行えます。
ローカルコミットができるので、他のメンバーに影響することなくコミットが可能です。
コードレビューも容易です。

コストがかかるシステムの導入は難しい…
環境を一度作ってしまえばあとは無料で使用できます。運用コストがかかりません。

Redmineとの連携もできます。チケットとリビジョンを関連付けることができ、大変便利です。

Gitlabは無料なので機能的にどうなの??という心配もあるかと思いますが、GitHubと遜色ない程の機能拡充がされています。

動作確認環境

製品 TS453Pro
バージョン QTS 4.2.1 Build 20160601

概要

使用するDBを指定しない場合は、GUI画面上の操作のみでインストールが完了します。
特定のDBを指定したい場合には、コマンドラインからインストールを行います。
 
  GUI CUI
データベース PostgreSQL固定 選択可能
Redis 内部固定 選択可能(内部/外部)
Webサーバー nginx固定 選択可能
日本語化 設定不可 設定可能
Redmine-Gitlab連携 設定不可 設定可能(※1)
※1 RedmineとGitlabの連携をしたい場合は、RedmineとGitlabを連携する方法 をご参照ください。
今回、データベースは「MySQL」、Redisは「内部」、Webサーバーは「nginx」を使用します。
インストールは以下の流れで進めます。
  1. Container Stationのインストール(事前準備)
  2. Gitlabのインストール
  3. Gitlabの日本語化

では、早速インストールしてみましょう。

事前準備(Container Stationのインストール)

Container Station のインストール

Gitlabのインストール手順

Gitlabのインストール方法は、以下の2パターンがあります。
  • GUI画面上からマウスで操作する方法
  • CUI画面上からコマンドで操作する方法
この記事では、Redmineをインストールし、リモートPCのWebブラウザにGitlabのトップページを表示させます。
GUI、CUIそれぞれのインストール方法を説明します。

【GUI】Container StationにGitlabをインストール

Container Stationが提供しているGitlabコンテナをGUI画面上からインストールします。
  1. ホーム画面の「Container Station」アイコン クリック


  2. Container Stationが起動します。
  3. 左メニュー:管理>編集>コンテナの作成 をクリック


  4. Gitlab > [インストール] ボタンをクリック


  5. [作成] ボタンクリック


    バックグラウンド処理の完了を待ちます。

【CUI】Container StationにGitlabをインストールする

Gitlab、Redis、MySQLのコンテナをコマンドラインからインストールします。

各入力値の説明は以下のとおりです。
 
入力値 説明 GUIインストール時のデフォルト値
Redis Name Redisコンテナ名 指定 gitlab1_redis_1
MySQL Name MySQLコンテナ名 指定 なし(GUIではPostgreSQL)
Gitlab Name Gitlabコンテナ名 指定 gitlab1_gitlab_1
HTTP Port No リモートPCのWebブラウザからGitlabへアクセスする時のポート番号 10080
SSH Port No リモートPCのターミナルからGitlabへアクセスする時のポート番号 10022
DB Name MySQLに作成するGitlab用DB名 gitlabhq_production
DB Root Pwd MySQLに作成するRedmine用DBのrootアカウントのパスワード なし(GUIではアカウント名root、パスワードなし)
※補足※
今回の例では、Gitlab本体のイメージはContainer Stationからインストールした場合と同じsameersbn/gitlabを使用ています。上記以外の設定を追加したい場合、PostgreSQLをコマンドラインからインストールしたい場合等は下記リンクを確認してください。
Docker hub (Sameersbn/gitlab)
  1. リモートPCのターミナルから、adminアカウントでログイン
    リモートPCからSSH接続する手順 > をご覧ください。
  2. Gitlabで使用するRedisをインストール
    以下のコマンドを入力します。
    $ docker run --name <Redis Name> -d sameersbn/redis:latest
  3. Gitlabで使用するMySQLをインストール
    以下のコマンドを入力します。
    $ docker run -d --name <MySQL Name> -e MYSQL_ROOT_PASSWORD=<DB Root Pwd>-e MYSQL_DATABASE=<DB Name> mysql:latest --character-set-server=utf8--collation-server=utf8_general_ci --skip-character-set-client-handshake
  4. Gitlab本体をインストール
    以下のコマンドを入力します。
    $ docker run -d -p <HTTP Port No>:80 -p <SSH Port No>:22 --name <Gitlab Name > 
    -e DB_NAME=<DB Name> -e DB_PASS=<DB Root Pwd> 
    -e GITLAB_SECRETS_DB_KEY_BASE=long-and-random-alpha-numeric-string 
    --link <MySQL Name>:mysql --link <Redis Name>:redisio sameersbn/gitlab:latest

【GUI・CUI】インストール完了確認

Gitlabがインストールできたことを確認

この手順はGUI/CUIで共通です。
  1. Container Stationを開く
  2. Gitlabのコンテナを開く
  3. Container Station左側にGitlabとData store(Redis)、Database(GUIはPostgreSQL / CUIはMySQL)が表示されることを確認
  4. Gitlabのコンテナをクリック
    (GUI画面でインストールした場合のコンテナ名「gitlab1_gitlab_1」 / CUI画面でインストールした場合は指定したコンテナ名)
  5. URL クリック(またはブラウザにURL入力)


  6. ブラウザ上にRedmineのTopページが表示されることを確認
インストールが完了できたことを確認できました。

GUIでインストールした場合、リモート接続PCのブラウザ上にGitlabのTopページが表示されます。
初期アカウントはユーザ名:root、パスワード:5iveL!feが設定されています。

CUIでインストールした場合、初回はrootのパスワード設定画面が表示されます。
パスワード設定完了後にログイン画面が表示されます。

【CUI】Gitlabの日本語化

Gitlabはブラウザ上から言語の設定を変更することができません。
日本語化するには、コマンドラインから日本語化patchを適用します。
  1. gitlabコンテナに入る
    $ docker exec -it <Gitlab Name> bash
  2. 【gitlabコンテナにpatchコマンドがインストールされていない場合】patchコマンドをインストール
    $ apt-get update
    $ apt-get install patch
  3. patchをダウンロード
    $ cd <patch download先 path>
    $ git clone https://github.com/ksoichiro/gitlab-i18n-patch.git
  4. patchを適用
    $ cd /home/git/gitlab
    $ patch -p1 < <patch download先 path>/gitlab-i18n-patch/patches/<Gitlab version>/app_ja.patch
※補足※
日本語化には使用したpatchはこちら
Git hub (gitlab-i18n-patch) 
次回は、RedmineとGitlabを連携する方法 > をご紹介します。
ITインフラ
ITインフラサービス
サーバー/ネットワーク設計・構築からクラウドシステム導入まで、お客様のビジネスIT環境構築を支援します。