Junior — Middle
Explique o conceito de construção em múltiplas etapas de uma imagem Docker e por que ela é usada.
sobes.tech IA
Resposta da IA
A construção multi-stage de uma imagem Docker (build multi-stage) permite usar várias fases de construção num único Dockerfile. Isto ajuda a criar imagens compactas e otimizadas, separando as fases de construção das fases de execução.
Na primeira fase, pode-se usar uma imagem com ferramentas para compilar e construir a aplicação, e nas fases seguintes — apenas uma imagem mínima com os ficheiros necessários para executar.
Vantagens:
- Reduz significativamente o tamanho da imagem final.
- Elimina dependências e ferramentas desnecessárias da imagem final.
- Simplifica a manutenção e atualização do Dockerfile.
Exemplo:
# Fase de construção
FROM openjdk:11-jdk AS build
WORKDIR /app
COPY . .
RUN ./gradlew build
# Fase de execução
FROM openjdk:11-jre
WORKDIR /app
COPY --from=build /app/build/libs/myapp.jar ./
CMD ["java", "-jar", "myapp.jar"]