63 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
		
		
			
		
	
	
			63 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
|  | services:
 | ||
|  |   # Servicio del Backend API
 | ||
|  |   mercados-api:
 | ||
|  |     build:
 | ||
|  |       context: ./MercadosModernos # Asumiendo que clonaste el repo en esta carpeta
 | ||
|  |       dockerfile: src/Mercados.Api/Dockerfile
 | ||
|  |     container_name: mercados-api
 | ||
|  |     restart: always
 | ||
|  |     env_file:
 | ||
|  |       - ./.env # Lee las variables desde un archivo .env en la misma carpeta
 | ||
|  |     networks:
 | ||
|  |       - mercados-net
 | ||
|  |       - shared-net # Se conecta a la red compartida para hablar con la DB
 | ||
|  |     # NO se exponen puertos al host.
 | ||
|  | 
 | ||
|  |   # Servicio del Worker
 | ||
|  |   mercados-worker:
 | ||
|  |     build:
 | ||
|  |       context: ./MercadosModernos
 | ||
|  |       dockerfile: src/Mercados.Worker/Dockerfile
 | ||
|  |     container_name: mercados-worker
 | ||
|  |     restart: always
 | ||
|  |     env_file:
 | ||
|  |       - ./.env
 | ||
|  |     networks:
 | ||
|  |       - shared-net # Solo necesita acceso a la DB.
 | ||
|  |     # NO se exponen puertos al host.
 | ||
|  | 
 | ||
|  |   # Servicio del Frontend (servido por Nginx)
 | ||
|  |   mercados-frontend:
 | ||
|  |     build:
 | ||
|  |       context: ./MercadosModernos/frontend
 | ||
|  |       dockerfile: Dockerfile
 | ||
|  |     container_name: mercados-frontend
 | ||
|  |     restart: always
 | ||
|  |     networks:
 | ||
|  |       - mercados-net
 | ||
|  |     # NO se exponen puertos al host.
 | ||
|  | 
 | ||
|  |   # --- NUEVO SERVICIO: Proxy Inverso Local ---
 | ||
|  |   proxy:
 | ||
|  |     image: nginx:1.25-alpine
 | ||
|  |     container_name: mercados-proxy
 | ||
|  |     restart: always
 | ||
|  |     volumes:
 | ||
|  |       # Mapeamos nuestro archivo de configuración al contenedor de Nginx
 | ||
|  |       - ./proxy-local/nginx.conf:/etc/nginx/conf.d/default.conf
 | ||
|  |     ports:
 | ||
|  |       # ESTE ES EL ÚNICO PUNTO DE ENTRADA DESDE EL EXTERIOR
 | ||
|  |       # Expone el puerto 80 del contenedor al puerto 8500 del host Debian.
 | ||
|  |       - "8500:80"
 | ||
|  |     networks:
 | ||
|  |       - mercados-net
 | ||
|  |     depends_on:
 | ||
|  |       - mercados-api
 | ||
|  |       - mercados-frontend
 | ||
|  | 
 | ||
|  | networks:
 | ||
|  |   mercados-net:
 | ||
|  |     driver: bridge
 | ||
|  | 
 | ||
|  |   shared-net:
 | ||
|  |     external: true
 |