Repaso
English
Cloud y DevOpsIntermedioOPS-41

¿Qué hace este Dockerfile de una app Spring Boot?

FROM eclipse-temurin:21-jre
WORKDIR /app
COPY target/app.jar app.jar
EXPOSE 8080
ENTRYPOINT ["java", "-jar", "app.jar"]

Opciones

  1. Imagen base de Java 21, copia el JAR, documenta el 8080, ejecuta java -jar (Opción correcta)
  2. Compila el código fuente Java dentro de la imagen al construirla
  3. Abre automáticamente el puerto 8080 en el host al ejecutar la app
  4. Instala Maven y ejecuta los tests al construir la imagen

Respuesta

Parte de una imagen base con Java 21, copia el JAR ya construido, documenta el puerto 8080 y ejecuta la app con java -jar

Por qué

Línea por línea:

  • FROM: parte de una imagen existente con un runtime de Java 21 (JRE, suficiente para ejecutar, más pequeño que el JDK).
  • WORKDIR: carpeta de trabajo dentro de la imagen.
  • COPY: pone en la imagen el JAR ya construido (con mvn package).
  • EXPOSE 8080: solo DOCUMENTA el puerto; aún necesitas docker run -p 8080:8080 para publicarlo.
  • ENTRYPOINT: el comando que se ejecuta al arrancar el contenedor.

No compila nada; un build multi-stage puede hacer el build de Maven en una primera etapa.

Recuerda

EXPOSE documenta el puerto; -p lo publica.

Términos clave

Practica esta pregunta en Repaso