ビルド環境の構築

Omnibus GitLabはサポートしているすべてのOSバージョンのDockerイメージを提供しており、コンテナレジストリで入手できます。 ユーザーはこれらのイメージを使用してビルド環境をセットアップできます。 手順は以下のとおりです。

  1. Dockerをインストールします。 詳細は公式ドキュメントをご覧ください。

コンテナは、ビルドを完了するために4GBのメモリにアクセスする必要があります。 コンテナランタイムのドキュメントを参照してください。 Docker for MacとDocker for Windowsは、デフォルトのインストールでこの値を2GBに設定することが知られています。

  1. gitlab-omnibus-builder レジストリには、サポートされているすべての OS とバージョンのイメージが含まれています。 そのうちの一つを使って、パッケージをビルドすることができます。 例えば、Debian Stretch 用のビルド環境を準備するには、そのイメージをプルする必要があります。 使用するイメージのリビジョンは、.gitlab-ci.ymlファイルのBUILDER_IMAGE_REVISION 変数に指定されています。 以下のコマンドでは、その値を${BUILDER_IMAGE_REVISION}に代入してください。

    docker pull registry.gitlab.com/gitlab-org/gitlab-omnibus-builder/debian_9:${BUILDER_IMAGE_REVISION}
    
  2. コンテナを起動し、そのシェルに入ります:

    docker run -it registry.gitlab.com/gitlab-org/gitlab-omnibus-builder/debian_9:${BUILDER_IMAGE_REVISION} bash
    
  3. Omnibus GitLabソースをクローンし、クローンしたディレクトリに移動します:

    git clone https://gitlab.com/gitlab-org/omnibus-gitlab.git ~/omnibus-gitlab
    cd ~/omnibus-gitlab
    
  4. trueOmnibus GitLab は、https://dev.gitlab.orgの内部リポジトリを使うように最適化されています。これらのリポジトリは、ソースツリーのルートにある.custom_sources.ymlファイル (remote キーで指定) で指定され、デフォルトで使われます。これらのリポジトリは一般には使えないので、個人でビルドする場合は、これらのリポジトリの公開代替リポジトリを使う必要があります。この代替リポジトリも同じファイルで提供され、alternativeキーで指定します。この2つの選択は、ALTERNATIVE_SOURCES環境変数によって制御され、true またはfalseのどちらかを設定できます。この変数がtrueに設定されている場合は、alternative キーでマークされたリポジトリが使われます。同様に、カスタムフォークをソースとして使いたい場合は、.custom_sources.yml ファイルを修正してalternate として指定し、ALTERNATIVE_SOURCES 変数を xml-ph-0012 に設定します。

  5. デフォルトでは、Omnibus GitLabは事前にコンパイルされたアセットを含むDockerイメージを使用します。config/software/gitlab-rails.rb
    1. 同じインスタンス上のGitLabアプリケーションのミラーからビルドする場合は、何もする必要はありません。
    2. アップストリームのアセットを使用するには、ASSET_REGISTRY 環境変数を次のように設定します。registry.gitlab.com
    3. 自分でコンパイルするには、COMPILE_ASSETS 環境変数を次のように設定します。true
  6. 依存関係をインストールし、バイナリを生成します:

    bundle install --path .bundle --binstubs
    
  7. ビルドコマンドを実行して、ビルドプロセスを開始します:

    bin/omnibus build gitlab
    

    ビルドの結果は、ソースツリーのルートにあるpkg フォルダで見ることができます。