Multi-stage Builds
Algumas linguagens de programação (como Go, Rust ou C++) precisam ser compiladas antes de rodar — um compilador é uma ferramenta que traduz o código-fonte escrito por um programador num único programa que a máquina pode executar diretamente (um ficheiro binário). Num multi-stage build, você usa um e
Você cozinha numa cozinha grande e bagunçada, cheia de panelas e ingredientes crus — e depois manda para o cliente só o prato pronto, sem as panelas e sem as sobras.
- compilador
- Uma ferramenta que traduz o código-fonte escrito por um programador num programa que a máquina pode executar diretamente (um ficheiro binário). Linguagens compiladas como Go, Rust e C++ precisam dele para construir o programa — mas não para executá-lo.
- estágio de build
- O primeiro estágio num multi-stage build, baseado numa imagem com um toolchain completo (compilador, bibliotecas), no qual a aplicação é compilada num artefato final.
- estágio de runtime
- O estágio final, baseado numa imagem pequena (por exemplo, alpine), que contém só o artefato pronto e o que é necessário para executá-lo — sem as ferramentas de build.
- COPY --from
- Uma instrução que copia ficheiros de um estágio anterior (por nome ou índice) para o estágio atual, permitindo escolher só o artefato final e deixar o resto do build para trás.