# 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: - [Docker](https://www.docker.com/get-started) - [Docker Compose](https://docs.docker.com/compose/install/) ## 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: ```bash npm init -y ``` Luego, instala las dependencias necesarias para tu aplicación: ```bash 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. Utiliza `nodemon` para 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: ```bash 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 `nodemon` instalado, 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: ```bash 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: ```bash docker compose down ``` Para eliminar también las imágenes, ejecuta: ```bash docker compose down --rmi all ``` ## Notas adicionales - Si necesitas acceder al contenedor para depurar o inspeccionar archivos, puedes hacerlo con el siguiente comando: ```bash docker exec -it 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!