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:

1 comentario:

  1. Gran trabajo para publicar un artículo tan bonito. Su artículo no solo es útil, sino que además es realmente informativo. Gracias porque has estado dispuesto a compartir información con nosotros. Diseño web Lima

    ResponderEliminar