¿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
- Imagen base de Java 21, copia el JAR, documenta el 8080, ejecuta
java -jar(Opción correcta) - Compila el código fuente Java dentro de la imagen al construirla
- Abre automáticamente el puerto 8080 en el host al ejecutar la app
- 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 (conmvn package).EXPOSE 8080: solo DOCUMENTA el puerto; aún necesitasdocker run -p 8080:8080para 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.