Skip to content
Regresar

Dockerfile para Proyectos NestJS

Publicado:21/5/2024 at 06:00 p. m.

Dockerfile para Proyectos NestJS

¡Hola a todos! En este artículo, quiero compartir con ustedes cómo crear un Dockerfile optimizado para tus proyectos NestJS. Docker es una herramienta increíblemente útil para empaquetar y desplegar aplicaciones, y con un buen Dockerfile, puedes asegurarte de que tu aplicación se ejecute de manera consistente en cualquier entorno.

Introducción

NestJS es un framework para Node.js que te ayuda a construir aplicaciones escalables y eficientes del lado del servidor. Si estás desarrollando una aplicación con NestJS, empaquetarla en un contenedor Docker puede facilitar mucho su despliegue y escalabilidad.

💡 Antes de continuar, asegúrate de tener Docker instalado en tu sistema. Puedes seguir mi guía sobre la Instalación de Docker en Debian.

Aquí tienes un ejemplo de Dockerfile para un proyecto NestJS:

# Utilizar una imagen base de Node.js
FROM node:18-alpine

# Establecer Zona horaria.
ENV TZ=America/Caracas

# Establecer el directorio de trabajo
WORKDIR /usr/src/app

# Copiar el package.json y el package-lock.json
COPY package*.json ./

# Instalar las dependencias
RUN npm install

# Copiar el resto de la aplicación
COPY . .

# Compilar la aplicación
RUN npm run build

# Exponer el puerto que utiliza la aplicación
EXPOSE 3000

# Definir el comando por defecto para ejecutar la aplicación
CMD ["node", "dist/main"]

Descripción del Dockerfile

  1. Imagen Base: Utilizamos una imagen base ligera de Node.js.
  2. Directorio de Trabajo: Establecemos el directorio de trabajo en /usr/src/app.
  3. Copiar Dependencias: Copiamos package.json y package-lock.json para instalar las dependencias.
  4. Instalar Dependencias: Instalamos las dependencias del proyecto.
  5. Copiar Aplicación: Copiamos el resto de los archivos de la aplicación al contenedor.
  6. Compilar Aplicación: Ejecutamos el comando para compilar la aplicación NestJS.
  7. Exponer Puerto: Exponemos el puerto 3000 que utiliza NestJS.
  8. Comando por Defecto: Definimos el comando por defecto para ejecutar la aplicación.

💡 Asegúrate de ajustar el puerto, zona horaria (de ser relevante) y cualquier otra configuración según las necesidades de tu proyecto.

Bonus:

También te facilito el fichero .dockerignore que garantizará que el contenedor no use recursos innecesarios:

Dockerfile
.dockerignore
node_modules
npm-debug.log
dist

Espero que este Dockerfile te sea útil para tus proyectos NestJS.