O Que É uma Imagem de Runner? O Template por Trás de Cada Runner
Uma imagem de runner é o template de máquina pré-configurado do qual um runner boota - o sistema operacional mais um conjunto curado de linguagens, build tools e SDKs prontos para uso.
Todo runner começa a partir de uma imagem. O que está embutido nessa imagem decide quais ferramentas estão disponíveis sem instalá-las, quão rápido o runner boota e se seus jobs se comportam de forma consistente entre execuções.
O que uma imagem contém
Um OS base (comumente Ubuntu), runtimes de linguagem (Node, Python, Go, Java), gerenciadores de pacotes, build tools, ferramental de container e CLIs de nuvem - pré-instalados para que seu workflow não precise instalá-los a cada job.
Por que a imagem importa
- Velocidade de boot: uma imagem mais enxuta boota e faz cold start mais rápido.
- Reprodutibilidade: uma imagem fixa significa que todo job vê as mesmas ferramentas.
- Conveniência: ferramentas pré-instaladas economizam tempo de instalação de dependências.
O trade-off do inchaço
Imagens GitHub-hosted pré-instalam uma quantidade enorme para cobrir todo usuário, o que as torna grandes e mais lentas de provisionar. Uma imagem menor e sob medida boota mais rápido, mas pode exigir que você instale ferramentas que seus jobs de fato precisam.
Paridade com GitHub-hosted
Quando você migra runners, quer uma imagem que combine com as ferramentas que seus workflows assumem das imagens GitHub-hosted, para que os jobs não quebrem com "command not found". Paridade é o que torna uma migração drop-in.
Imagens em runners gerenciados
A Latchkey roda imagens com paridade com o GitHub para que seus workflows existentes funcionem sem alterações, mantendo o boot rápido o suficiente para servir a partir de warm pools.
Principais conclusões
- Uma imagem de runner é o template de OS-mais-ferramentas do qual um runner boota.
- Ela controla velocidade de boot, reprodutibilidade e ferramentas disponíveis.
- Imagens hosted são amplas mas inchadas; imagens sob medida são mais enxutas.
- Imagens com paridade com o GitHub tornam as migrações de runner drop-in.