omnibus-gitlab パッケージを内部でビルドします。
ビルド環境の準備
omnibus-gitlab パッケージのビルドに必要なビルドツールを含む Docker イメージはGitLab Omnibus Builder プロジェクトのコンテナレジストリにあります。
- 
Dockerをインストールします。
コンテナは、ビルドを完了するために4GBのメモリにアクセスする必要があります。コンテナランタイムのドキュメントを参照してください。Docker for MacとDocker for Windowsは、デフォルトのインストールでこの値を2GBに設定することが知られています。
 - 
パッケージをビルドしたいOSのDockerイメージを取り出します。
omnibus-gitlabで公式に使用されているイメージの現在のバージョンは、CIの設定BUILDER_IMAGE_REVISION環境変数で参照されます。docker pull registry.gitlab.com/gitlab-org/gitlab-omnibus-builder/debian_10:${BUILDER_IMAGE_REVISION} - 
OmnibusのGitLabソースをクローンし、クローンしたディレクトリに移動します:
git clone https://gitlab.com/gitlab-org/omnibus-gitlab.git ~/omnibus-gitlab cd ~/omnibus-gitlab - 
コンテナを起動し、コンテナ内の
omnibus-gitlabディレクトリをマウントしながら、コンテナの Shell に入ります:docker run -v ~/omnibus-gitlab:/omnibus-gitlab -it registry.gitlab.com/gitlab-org/gitlab-omnibus-builder/debian_10:${BUILDER_IMAGE_REVISION} bash - 
デフォルトでは、
omnibus-gitlabは GitLab の公開リポジトリを選択して、さまざまな GitLab コンポーネントのソースを取得します。dev.gitlab.orgからビルドするには、環境変数ALTERNATIVE_SOURCESをfalseに設定します。export ALTERNATIVE_SOURCES=falseコンポーネントのソース情報は
.custom_sources.ymlファイルにあります。 - 
デフォルトでは、
omnibus-gitlabコードベースは CI 環境で使用するように最適化されています。そのような最適化の1つは、GitLab CIパイプラインによってビルドされたコンパイル済みのRails資産を再利用することです。これをビルドに活用する方法については、アップストリームアセットを取得するセクションを参照してください。または、環境変数COMPILE_ASSETSを設定することで、パッケージビルド中にアセットをコンパイルすることもできます。export COMPILE_ASSETS=true - 
ライブラリとその他の依存関係をインストールします:
cd /omnibus-gitlab bundle install bundle binstubs --all 
アップストリーム資産の取得
GitLabとGitLab-FOSSプロジェクトのパイプラインは、コンパイル済みのアセットを含むDockerイメージを作成し、コンテナレジストリにイメージを公開します。パッケージのビルド中に時間を節約するために、アセットを再度コンパイルする代わりにこれらのイメージを再利用することができます:
- 
ビルドするGitLabやGitLab-FOSSのrefに対応するアセットのDockerイメージを取得します。例えば、最新の master ref に対応するアセットイメージを取得するには、以下を実行します:
docker pull registry.gitlab.com/gitlab-org/gitlab/gitlab-assets-ee:master - 
そのイメージを使ってコンテナを作成します:
docker create --name gitlab_asset_cache registry.gitlab.com/gitlab-org/gitlab/gitlab-assets-ee:master - 
コンテナからアセットディレクトリをホストにコピーします:
docker cp gitlab_asset_cache:/assets ~/gitlab-assets - 
ビルド環境コンテナを起動し、asset ディレクトリをマウントします:
docker run -v ~/omnibus-gitlab:/omnibus-gitlab -v ~/gitlab-assets:/gitlab-assets -it registry.gitlab.com/gitlab-org/gitlab-omnibus-builder/debian_10:${BUILDER_IMAGE_REVISION} bash - 
COMPILE_ASSETSを true に設定する代わりに、アセットが見つかるパスを設定します:export ASSET_PATH=/gitlab-assets 
パッケージのビルド
ビルド環境を準備し、必要な変更を行った後、提供されているRakeタスクを使ってパッケージをビルドすることができます:
- 
ビルドを成功させるためには、Gitの作業ディレクトリをきれいにしておく必要があります。そこで、変更を新しいブランチにコミットします。
 - 
Rake タスクを実行してパッケージをビルドします:
bundle exec rake build:project 
パッケージがビルドされ、~/omnibus-gitlab/pkg ディレクトリで利用できるようになります。
EEパッケージのビルド
デフォルトでは、omnibus-gitlab は CE パッケージをビルドします。EEパッケージをビルドしたい場合は、Rakeタスクを実行する前に環境変数ee :
export ee=true
ビルド中に作成されたファイルのクリーンアップ
omnibus のclean コマンドを使用すると、ビルド中に生成されたすべての一時ファイルをクリーンアップできます:
bin/omnibus clean gitlab
--purge purge オプションを追加すると、プロジェクトのインストール・ディレクトリ (/opt/gitlab) とパッケージ・キャッシュ・ディレクトリ (/var/cache/omnibus/pkg) を含め、ビルド中に生成されたすべてのファイルが削除されます:
bin/omnibus clean --purge gitlab
Omnibusのヘルプを見る
Omnibus コマンドラインインターフェイスのヘルプは、help コマンドを実行してください:
bin/omnibus help