Files
Mercados-Web/docker-compose.yml
2025-07-24 10:17:33 -03:00

64 lines
1.6 KiB
YAML

services:
# Servicio del Backend API
mercados-api:
build:
context: ./Mercados-Web
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: ./Mercados-Web
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: ./Mercados-Web/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