Sobes.tech
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"]