JAVA 20 con Docker

7 June, 2023 | Docker

Usando el siguiente Dockerfile podemos construir una imagen de docker, donde se instalaran las dependencias ( usando la imagen de Maven ) y generar el archivo JAR de nuestro proyecto en Java (versión 20).

FROM maven:3.9.2-amazoncorretto-20 AS builder
WORKDIR /app
COPY . /app
RUN mvn dependency:go-offline
RUN mvn package

FROM openjdk:20-jdk-slim
WORKDIR /app
COPY --from=builder /app/target/nombredearchivo.jar .
CMD ["java", "-jar", "nombredearchivo.jar"]

En este ejemplo, se utilizan dos etapas en el Dockerfile. La primera etapa utiliza una imagen de Maven para construir la aplicación. Se copia todos los archivos del proyecto. Se descargan las dependencias haciendo uso del archivo pom.xml.

En la segunda etapa, se utiliza una imagen base ligera de Java. Se copia el archivo JAR generado desde la primera etapa al directorio /app en la nueva imagen. Finalmente, usando el comando CMD para ejecutar el archivo JAR cuando se inicie el contenedor.

Ejecuta el siguiente comando para construir la imagen Docker:

docker build -t mi-aplicacion-java .

Esto creará una imagen Docker etiquetada como “mi-aplicacion-java” y ejecutará el proceso de compilación y construcción dentro del contenedor.

Una vez que la imagen esté construida y el archivo JAR generado, puedes ejecutar un contenedor basado en ella con el siguiente comando:

docker run -p 8080:8080 mi-aplicacion-java

Esto ejecutará tu aplicación Java dentro del contenedor Docker utilizando el archivo JAR generado durante la compilación usando el puerto 8080.