Dockerizando una app Spring Boot
Docker es una tecnología fabulosa que nos permite llevar de la mano software e infraestructura. Cuando pensamos en Java y la JVM siempre nos viene a la mente una de las características que lo ha hecho más popular que es: cross-platform.
Lo cierto es que este concepto es muy relativo … pues sí. Recientemente estuve trabajando en un proyecto en mi local con Java 11 y cuando fui a producción lo que teníamos era Java 8, resulta que tuve que hacer cambios en Optional (Java 8 vs Java 11). Algo similar me paso con String, en Java 11 pusieron isBlank, que no está en Java 8. Esto no es una crítica a Java, es un símbolo de evolución, malo sería que hacia adelante no funcionara.
El punto al que quiero llegar, es que sino seguimos unas pautas para desarrollar en ambientes homogeneos a los de producción pueden llegar a surgir algunos problemas,”o no”.
Para que no tengamos el problema: docker
Como referí en la introducción docker permite llevar de la mano el software y la infraestructura, entiéndase por esto último para un proyecto Java (el sistema operativo base + JDK + app).
Para dockerizar un proyecto Spring Boot, o Java con servidor de aplicaciones autocontenido solo basta con las siguientes líneas agregadas en fichero de nombre Dockerfile. La ruta de la variable JAR_FILE es relativa a donde está el Dockerfile.
FROM openjdk:8-jdk-alpine VOLUME /tmp EXPOSE 8080 ARG JAR_FILE=target/dockerbasico-0.0.1-SNAPSHOT.jar ADD ${JAR_FILE} app.jar ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
La primera línea nos da un sistema operativo Linux Alpine basado en busybox (muy poco size) y ese Linux ya viene con JDK 8. Las siguientes líneas lo que hacen es ponerle arriba nuestra app Spring Boot que la buscamos en la carpeta /target.
Al final para construir nuestra imagen de docker, solo nos basta con ejecutar:
docker build -t midocker .
El . es porque lo hacemos parados en donde está el fichero Dockerfile y midocker es el nombre que le vamos a poner al contenedor.
Ese contenedor creado lo podemos colocar en un registry o llevar a cualquier lugar para ponerlo en producción, sin preocupación alguna del sistema operativo o infraestructura donde se va a ejecutar.
Si quieres ver el ejemplo completo puedes visitar GitHub.
En este vídeo de acá te explicamos todos los conceptos y pasos más detallados.
Espero te se útil este artículo.
Thanks a lot for sharing this with all people you
really recognize what you’re talking about! Bookmarked. Please additionally talk over with my
website =). We may have a hyperlink change contract between us https://uricasino114.com