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"]