64 lines
1.6 KiB
YAML
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
|