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
Enjoy!
Joe
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
ResponderBorrar