~/questoes/devops
Multi-stage build é uma técnica que divide o Dockerfile em múltiplas fases, permitindo que você use uma imagem pesada com ferramentas de compilação em uma fase inicial e depois copie apenas os arquivos finais para uma imagem leve na fase de produção. Isso resulta em imagens Docker muito menores e mais eficientes para colocar em produção.
A alternativa A está correta porque multi-stage build evita incluir todas as ferramentas de build (Node.js, npm, dependências de desenvolvimento) na imagem final. Você compila o React em uma primeira fase com Node.js, depois copia apenas os arquivos estáticos gerados para uma imagem Nginx leve, reduzindo drasticamente o tamanho da imagem que irá para produção.
Correto. O multi-stage build reduz o tamanho porque a imagem final contém apenas os arquivos compilados e o Nginx, sem todas as dependências de desenvolvimento que ficam para trás na primeira fase.
Incorreto. Multi-stage build não aumenta a velocidade de execução do container. A velocidade de execução depende mais da otimização do código e da configuração do servidor. O benefício principal é reduzir o tamanho da imagem, não melhorar desempenho.
Incorreto. Para testar em múltiplos ambientes você usa variáveis de ambiente, diferentes branches ou ambientes de staging, não multi-stage build. Multi-stage build é apenas uma técnica de otimização de imagem.
Incorreto. Embora você possa usar diferentes versões do Node.js em cada fase, esse não é o propósito principal do multi-stage build. O objetivo é otimizar o tamanho final da imagem, não permitir múltiplas versões.