Sobes.tech
Junior — Middle

¿En qué casos se recomienda utilizar una construcción de Docker en varias etapas y cómo ayuda esto a optimizar el proceso?

sobes.tech AI

Respuesta de la IA

Se recomienda la compilación multinivel de Docker cuando se necesita crear una imagen compacta y optimizada, separando las etapas de compilación y ejecución de la aplicación. Por ejemplo, en la primera etapa se compila la aplicación con todas las herramientas y dependencias necesarias, y en la segunda se crea una imagen mínima, a la cual solo se copian los artefactos compilados.

Esto ayuda a:

  • reducir el tamaño de la imagen final, excluyendo archivos y herramientas de compilación innecesarios;
  • aumentar la seguridad, ya que en la imagen final no hay herramientas de desarrollo;
  • acelerar el despliegue y la ejecución de los contenedores.

Ejemplo de Dockerfile con compilación multinivel:

# Etapa de compilación
FROM maven:3.8-jdk-11 AS builder
WORKDIR /app
COPY . .
RUN mvn clean package

# Etapa de ejecución
FROM openjdk:11-jre-slim
WORKDIR /app
COPY --from=builder /app/target/myapp.jar ./
CMD ["java", "-jar", "myapp.jar"]