Proyecto Node.js con Docker
Este proyecto es una aplicación Node.js containerizada usando Docker y Docker Compose, con entornos separados para desarrollo y producción. A continuación, se explica cómo configurar y ejecutar la aplicación en ambos entornos.
Estructura del Proyecto
.
├── Dockerfile.dev # Dockerfile para entorno de desarrollo
├── Dockerfile.prod # Dockerfile para entorno de producción
├── docker-compose.dev.yml # Archivo de configuración para entorno de desarrollo
├── docker-compose.prod.yml # Archivo de configuración para entorno de producción
├── package.json # Dependencias del proyecto Node.js
├── src/ # Código fuente de la aplicación
└── ...
Prerequisitos
Antes de comenzar, asegúrate de tener instalado:
Configuración
1. Instalar dependencias
Primero, asegúrate de tener todas las dependencias necesarias para tu proyecto. Si aún no tienes el archivo package.json, ejecuta:
npm init -y
Luego, instala las dependencias necesarias para tu aplicación:
npm install express
npm install --save-dev nodemon
2. Estructura de los Dockerfiles
Dockerfile.dev: Configuración para el entorno de desarrollo.Dockerfile.prod: Configuración para el entorno de producción.
3. Configuración de Docker Compose
docker-compose.dev.yml: Configuración para el entorno de desarrollo. Utilizanodemonpara recargar la aplicación automáticamente.docker-compose.prod.yml: Configuración para el entorno de producción. Instala solo las dependencias necesarias para producción.
Uso
1. Entorno de Desarrollo
Para levantar el entorno de desarrollo y comenzar a trabajar, ejecuta:
docker compose -f docker-compose.dev.yml up --build
Esto hará lo siguiente:
- Construirá la imagen usando el
Dockerfile.dev. - Levantará el contenedor en el puerto
3000. - Con
nodemoninstalado, cualquier cambio que realices en el código será automáticamente reflejado en el contenedor.
Puedes acceder a la aplicación en tu navegador en http://localhost:3000.
2. Entorno de Producción
Para ejecutar el entorno de producción (sin dependencias de desarrollo), ejecuta:
docker compose -f docker-compose.prod.yml up --build
Esto:
- Construirá la imagen usando el
Dockerfile.prod. - Levantará el contenedor en el puerto
3000.
En este entorno no se instalarán dependencias de desarrollo y es más ligero para producción.
3. Detener los contenedores
Si necesitas detener los contenedores en ejecución, puedes usar:
docker compose down
Para eliminar también las imágenes, ejecuta:
docker compose down --rmi all
Notas adicionales
- Si necesitas acceder al contenedor para depurar o inspeccionar archivos, puedes hacerlo con el siguiente comando:
docker exec -it <container_id> sh
- Si tienes alguna duda o problema, no dudes en contactarnos o abrir un issue en el repositorio.
¡Disfruta trabajando con tu aplicación Node.js containerizada!