почему конвейер запускает только первый gitlab-runner?

почему конвейер запускает только первый gitlab-runner?

Я регистрирую 6 gitlab-runner, а затем при отправке на сервер gitlab, pipline запускает только первый gitlab-runner? Почему это происходит? Я ожидаю, что конвейер будет работать на 6 серверах. Спасибо.

решение1

Это общеизвестное поведение служб SSH, но поскольку реализация ваших инструментов не описана подробно, я понятия не имею, похожа ли эта проблема.

С ssh проблема в том, что локальная служба предполагает, что удаленная служба будет читать stdin с локальной машины. Поэтому она заранее читает локальные данные и отправляет блок на удаленную машину, чтобы улучшить время запуска.

Если вы находитесь в цикле удаленных вызовов, это высасывает весь ввод из управления циклом, и второй цикл цикла получает EOF.

Исправление в ssh заключается в следующем: (a) использовать опцию -n для запрета отправки локальных данных или (b) перенаправить ввод ssh из /dev/null, чтобы он в любом случае не мог выполнять чтение.

Вы также можете поместить данные в саму команду ssh как echo или передать ее входные данные из файла или другой локальной команды, тем самым обойдя локальный stdin.

Вы должны иметь возможность запустить git-lab-runner под strace, чтобы выяснить, не считывает ли он данные со stdin неожиданно.

Связанный контент