por que o pipeline é executado apenas no primeiro gitlab-runner?

por que o pipeline é executado apenas no primeiro gitlab-runner?

Eu registro 6 gitlab-runner e, quando envio para o servidor gitlab, o pipline executa apenas o primeiro gitlab-runner? Por que isso está acontecendo? Espero que o pipeline seja executado em 6 servidores. obrigado.

Responder1

Este é um comportamento bem conhecido em serviços ssh, mas como a implementação de suas ferramentas não é descrita em detalhes, não tenho ideia se este é um problema semelhante.

Com o ssh, o problema é que o serviço local assume que o serviço remoto lerá o stdin da máquina local. Assim, ele lê preventivamente os dados locais e envia um bloco para o controle remoto para melhorar seu tempo de inicialização.

Se você estiver em um loop de chamadas remotas, isso suga toda a entrada do controle de loop e o segundo ciclo de loop obtém EOF.

A correção no ssh é (a) usar uma opção -n para inibir o envio de dados locais ou (b) redirecionar a entrada ssh de /dev/null para que ela não possa ser lida de qualquer maneira.

Você também pode colocar dados no próprio comando ssh como um eco ou canalizar sua entrada de um arquivo ou outro comando local, ignorando assim o stdin local.

Você deve ser capaz de executar seu git-lab-runner sob strace para descobrir se ele está lendo stdin inesperadamente.

informação relacionada