version: '3'
services:
  # Backend de Node.js
  node:
    build:
      context: .
      target: backend
    container_name: node  # Nombre del contenedor ajustado
    ports:
      - "3000:3000"
    environment:
      MONGO_URL: mongodb://mongodb:27017
      REDIS_HOST: redis
    depends_on:
      - mongodb
      - redis

  # Nginx como Proxy Inverso y Servidor del Frontend
  nginx:
    build:
      context: .
      target: nginx
    container_name: nginx  # Nombre del contenedor ajustado
    ports:
      - "8081:80"
    depends_on:
      - node
    links: 
      - node  # Enlace explícito al contenedor de Node.js para asegurar que se resuelva

  # Redis para caché y almacenamiento en memoria
  redis:
    image: redis:alpine
    container_name: redis  # Nombre del contenedor ajustado
    ports:
      - "6379:6379"
    volumes:
      - redis-data:/data

  # Base de datos MongoDB
  mongodb:
    image: mongo:latest
    container_name: mongodb  # Nombre del contenedor ajustado
    ports:
      - "27017:27017"
    volumes:
      - mongo-data:/data/db

volumes:
  redis-data:
  mongo-data:
