devterview_$ iniciar simulação

Multi-stage build: o que fica de fora da imagem final

MédioPlenoBuild

Pergunta

Como um multi-stage build reduz o tamanho e a superfície de ataque da imagem final?

Resposta esperada

Você define vários `FROM` no mesmo Dockerfile. Um stage 'builder' tem o toolchain completo (compilador, dev dependencies, headers) e produz o artefato — um binário, um `dist/`, os `node_modules` de produção. O stage final parte de uma base mínima (`alpine`, `distroless`, `scratch`) e `COPY --from=builder` só o artefato pronto. Resultado: a imagem que vai pra produção não carrega compilador, gerenciador de pacotes, código-fonte nem dev deps — menos MB pra baixar/armazenar e menos coisa que pode ter CVE ou servir de ferramenta pra um atacante que entrou no container. Combina com rodar como usuário não-root e com `.dockerignore` pra o build nem enxergar `.git`, `node_modules` local, secrets.

Por que perguntam isso

Pergunta pleno. Já existe `be-docker-multi-stage`; esta foca no ângulo de segurança/superfície. Sinal bom: distroless/scratch, não-root, .dockerignore.

#multi-stage#tamanho#seguranca
publicidade

Relacionadas