GitLab Workhorse

GitLab WorkhorseはGitLabのスマートなリバースプロキシです。ファイルのダウンロード、ファイルのアップロード、Gitのプッシュ/プル、Gitアーカイブのダウンロードなどの “大きな “HTTPリクエストを処理します。

Workhorse自体は機能ではありませんが、Workhorseなしでは効率的に動作しないGitLabの機能がいくつかあります。

Workhorseの正式なソースはgitlab-org/gitlab/workhorseです。

学習リソース

Workhorseのインストール

GitLab Workhorseをインストールするには、Go 1.18以降と GNU Makeが必要です。

/usr/local/bin にインストールするにはmake install を実行してください。

make install

/foo/bin にインストールするには PREFIX 変数を設定します。

make install PREFIX=/foo

FreeBSD のような一部のオペレーションシステムでは、make の代わりにgmake を使う必要があるかもしれません。

注意: いくつかの機能はビルドタグに依存します。Workhorseの設定を確認して、それらを有効にしてください。

実行時の依存関係

Workhorseは、アップロードされた画像からEXIFデータ(機密情報を含む可能性があります)を削除するためにExifToolを使用します。GitLab:

  • Omnibus パッケージのインストールは完了です。CentOS Minimal を使っている場合は、perl パッケージをインストールする必要があるかもしれません yum install perl
  • ソースから、exiftool がインストールされていることを確認してください:

     # Debian/Ubuntu
     sudo apt-get install libimage-exiftool-perl
       
     # RHEL/CentOS
     sudo yum install perl-Image-ExifTool
    

コードのテスト

でテストを実行します:

make clean test

GitLab Workhorseの各機能には、その機能が適切なリクエストで “キックイン “し、他のリクエストに影響を与えないことを検証するインテグレーションテストが必要です。特定の動作のためのパッケージレベルのテストもあった方が良いですが、開発者としては高レベルのインテグレーションテストを最優先すべきです。

ある機能がインテグレーションテストのみでカバーされていてもかまいません。