Dockeriza tu API – Explicado para principiantes

0
1357

El propósito de este tutorial es aprender a dockerizar una aplicación realizada con NestJS y otra con SpringBoot, aunque se puede realizar con cualquier aplicación que desarrollemos.

Índice de contenidos

1. Introducción

Gracias a Docker podemos construir entornos sencillos, de manera muy fácil y que se pueden ejecutar en cualquier máquina sin importar el sistema operativo que tenga.

2. Entorno

El tutorial está escrito usando el siguiente entorno:

  • Hardware: Portátil MacBook Pro 15′ (2,7 Ghz Intel Core i7, 16GB DDR3).
  • Sistema Operativo: Mac OS Catalina 10.15.3
  • Entorno de desarrollo: Visual Studio Code
  • NestJS 6.14.2
  • TypeScript 3.7.4

3. ¿Qué es docker?

Por si no conoces docker te dejo por aquí la definición de wikipedia.

Docker es un proyecto de código abierto que automatiza el despliegue de aplicaciones dentro de contenedores de software, proporcionando una capa adicional de abstracción y automatización de virtualización de aplicaciones en múltiples sistemas operativos.

4. Creación de imagen

Para poder crear un contenedor con nuestra aplicación, la primera tarea que debemos hacer es crear una imagen de esta.

Gracias a un fichero llamado “Dockerfile” podremos crear nuestra imagen. En este fichero definiremos las configuraciones necesarias para la correcta creación de nuestra imagen.

4.1. Definición del fichero DockerFile de aplicación hecha con NestJS.

Explicación de cada propiedad:

  • FROM: en este caso al ser una aplicación realizada con NestJS es necesario utilizar node. En esta ocasión utilizaremos la versión 10 de node.
  • WORKDIR: es el directorio interno del contenedor en el cual se copiará el proyecto
  • COPY: copia el package.json de nuestro proyecto para después realizar la instalación.
  • RUN: Realizamos la instalación de los paquetes
  • COPY: Copiamos todo el sistema de archivos
  • RUN: Construimos nuestra aplicación
  • CMD: Escribimos el comando con el que se ejecutará la aplicación dentro del contenedor.

4.2. Definición del fichero DockerFile de aplicación hecha con SpringBoot.


Explicación de cada propiedad:

  • FROM: en este caso al ser una aplicación realizada con SpringBoot es necesario utilizar java. En esta ocasión utilizaremos la versión 8 de java.
  • ARG: Definimos el nombre de variable que contendrá la referencia al path de nuestro .jar
  • COPY: copia el archivo .jar a nuestro contenedor y lo renombre a api.jar
  • ENTRYPOINT: definimos el comando que ejecutará nuestra aplicación dentro del contenedor.

4.3. Construcción de la imagen.

El fichero Dockerfile debe estar en la raíz de nuestro proyecto

En el terminal situándonos en la raíz del proyecto, ejecutamos en siguiente comando para crear la imagen de nuestra aplicación.

Una vez termine el proceso podremos comprobar que nuestra imagen se ha creado ejecutando el siguiente comando: 

5. Creación de contenedor

Para crear el contenedor lo haremos con la ayuda de docker-compose.

Y simplemente ejecutando:

Tendremos nuestro contenedor creado.

6. Conclusiones

Dockerizar una aplicación nos facilitará el trabajo a la hora de realizar cualquier instalación o despliegue en diferentes sistemas.

7. Referencias

Dejar respuesta

Please enter your comment!
Please enter your name here