GitLab Workhorse
GitLab WorkhorseはGitLabのスマートなリバースプロキシです。ファイルのダウンロード、ファイルのアップロード、Gitのプッシュ/プル、Gitアーカイブのダウンロードなどの “大きな “HTTPリクエストを処理します。
Workhorse自体は機能ではありませんが、Workhorseなしでは効率的に動作しないGitLabの機能がいくつかあります。
Workhorseの正式なソースはgitlab-org/gitlab/workhorse
です。
学習リソース
- Workhorse ドキュメント (このページ)
- GitLab Workhorse Deep Dive:依存プロキシ ビデオ
- Workhorse による依存プロキシの仕組み
- Workhorse による依存プロキシの概要
- 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の各機能には、その機能が適切なリクエストで “キックイン “し、他のリクエストに影響を与えないことを検証するインテグレーションテストが必要です。特定の動作のためのパッケージレベルのテストもあった方が良いですが、開発者としては高レベルのインテグレーションテストを最優先すべきです。
ある機能がインテグレーションテストのみでカバーされていてもかまいません。