6つのgitlab-runnerを登録してgitlabサーバーにプッシュすると、piplineは最初のgitlab-runnerのみを実行しますか?なぜこれが起こるのですか?パイプラインを6つのサーバーで実行したいと思います。ありがとうございます。
答え1
これはSSHサービスでよく知られている動作ですが、ツールの実装が詳細に説明されていないため、これが同様の問題かどうかはわかりません。
SSH を使用する場合の問題は、ローカルサービスがリモートサービスがローカルシステムから stdin を読み取ると仮定することです。したがって、ローカルデータを先制的に読み出し、ブロックを遠隔に送信することによって開始時間を改善する。
リモートコールループにある場合、すべての入力はループ制御から出て、2番目のループサイクルはEOFを取得します。
sshの修正は、(a)-nオプションを使用してローカルデータ転送を無効にするか、(b)ssh入力を/ dev / nullからリダイレクトして読み取ることができないようにすることです。
データをsshコマンド自体にエコーするか、ローカル標準入力をバイパスしてファイルまたは他のローカルコマンドから入力をパイプすることもできます。
予期せずstdinを読んでいることを確認するには、straceでgit-lab-runnerを実行できる必要があります。