Crear imágenes docker de tus proyectos java o angular







Para hacer portables nuestras aplicaciones, en el trabajo decidimos dockerizar tanto el backend como el frontend y luego desplegarlo en un cluster de kubernetes para su orquestación y control.

Aquí les comparto algunos tips de como lo hacemos con el equipo. Gracias a Roy Abel Sanchez por el aporte de los dockerfile.

Primera Alternativa:  JIB


Hay una forma muy sencilla con el plugin JIB que desarrollo google y que esta disponible tanto para maven como para gradle.




El contenido del plugin lo pueden ubicar en este link.

A continuación les dejo un vídeo para que vean como aplicarlo en sus proyectos como spring boot, por ejemplo.





Segunda Alternativa:  Creando un Dockerfile para tu backend


Otra alternativa es crear un archivo Dockerfile con este contenido:




#De la imagen que partimos
FROM openjdk:8-jre-alpine

RUN apk add --no-cache tzdata
ENV TZ='America/Lima'
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

RUN apk --update add fontconfig ttf-dejavu

#Directorio de trabajo
WORKDIR /

RUN mkdir app && chmod 777 app
COPY target/fps-app-ws-mallapromocional-0.0.1-SNAPSHOT.jar /app
WORKDIR /app

#Exponemos el puerto 8080
EXPOSE 8080

#Comando que se ejecutará una vez ejecutemos el contendor
CMD ["java","-jar","fps-app-ws-mallapromocional-0.0.1-SNAPSHOT.jar"]

El contenido del archivo lo pueden ubicar en este link.

Para crear la imagen con este archivo ejecuta el siguiente comando:


docker build -t [nombre-imagen] . 


Para luego ejecutarlo de esta forma:


docker run -d -p 8080:8080 --name [nombre-contenedor] [nombre-imagen] 


Si quieres ver los logs y ver como anda:


docker logs [id-contenedor]


Para entrar al contenedor:


docker exec -it  [nombre-contenedor] sh 



Y aquí les dejo un vídeo para que vean como aplicarlo.






Tercera Alternativa: Creando un dockerfile para tu frontend con angular


En la última parte de este post les muestro como nuestro dockerizar tus proyectos angular usando también un Dockerfile.

FROM nginx:1.11-alpine
# Se agregan metadatos a la imagen
LABEL Descripción="Web Malla Promocional" Autor="Arquitectura" Versión="v1.0.0"
RUN apk add --no-cache tzdata
ENV TZ=America/Lima
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
WORKDIR /
RUN cd var && mkdir www && cd www && mkdir html && cd html && mkdir fps-app-web-mallapromocional
WORKDIR /
RUN rm -r /etc/nginx/nginx.conf && rm -r /etc/nginx/conf.d/default.conf
COPY docker/nginx/nginx.conf /etc/nginx/
COPY docker/nginx/mallapromocional.conf /etc/nginx/conf.d/
# Se copian los ficheros hacia la carpeta de nginx
COPY dist/fps-app-web-mallapromocional /var/www/html/fps-app-web-mallapromocional

El contenido lo pueden ubicar aquí.


Y la forma de aplicarlo lo pueden ver en este vídeo.



Y eso es todo amigo. Si necesitan un apoyo, no duden en contactarnos.


Enjoy!

Joe







Share:

microprofile.io



Hace ya bastante tiempo veo el interés de la comunidad por cursos de spring boot y spring cloud. Pero, sabía Ud. que existe Eclipse Microprofile como opción estándar para el desarrollo de aplicaciones nativas cloud usando microservicios java, pero, sin nada de spring, sino con proyectos nuevos o proyectos estándar que vienen de Java EE (hoy llamado Jakarta EE).

El mejor lugar para iniciarse es https://microprofile.io/ , donde hay un PDF con todos los proyectos que la conforman.



Actualmente estamos en la versión 2.2 totalmente documentada con la lista completa de proyectos que la conforman:



Existe una presentación excelente  de Microprofile por Emily Jiang al respecto y que la recomienda x 3 millones de verla.  Y para fortuna nuestra hay un webinar para SouJava donde la explica slide x slide. 


Si necesitas explicar a tu Jefe este proyecto, existe una presentación ejecutiva que muestra la adopción de este microprofile en el mundo real o corporativo a nivel mundial.

Start.microprofile.io


En Spring Boot existe una pagina start.spring.io para crear proyectos desde cero. En Microprofile también existe una opción parecida https://start.microprofile.io/. Así que puedes empezar a usarlo con una configuración efectiva. 

Quienes soporta Microprofile.io




Existen varias plataformas middleware como:

Canal de Youtube de JoeDayz

Para que puedas iniciar sin problemas con este stack, te dejo una lista de reproducción de mi canal de youtube




Espero que lo disfrutes y dejame tus comentarios debajo de este post sobre esta alternativa para crear microservicios con java.

Enjoy!

Joe





Eclipse MicroProfil

e 2.2



Share: