Test Public Side

This commit is contained in:
2025-09-03 13:49:35 -03:00
parent 32e85b9b9d
commit a81f1fe894
33 changed files with 1205 additions and 133 deletions

View File

@@ -1,46 +1,54 @@
services:
# Servicio del Backend API
elecciones-api:
build:
context: ./Elecciones-Web
dockerfile: src/Elecciones.Api/Dockerfile
container_name: elecciones-api
restart: unless-stopped
env_file:
- ./.env # Lee las variables de entorno desde el archivo .env
env_file: ./.env
# .NET expone el puerto 8080 por defecto en contenedores
expose:
- "8080"
networks:
- elecciones-net
- shared-net # Se conecta a la red compartida para hablar con la DB
# No se exponen puertos directamente al host. El proxy se encarga.
- shared-net
# Servicio del Worker para la ingesta de datos
# Servicio del Worker (sin cambios)
elecciones-worker:
build:
context: ./Elecciones-Web
dockerfile: src/Elecciones.Worker/Dockerfile
container_name: elecciones-worker
restart: unless-stopped
env_file:
- ./.env
env_file: ./.env
networks:
- shared-net # Solo necesita acceso a la DB y a la API electoral (internet).
- shared-net
volumes:
# Mapea el directorio /app/logs de dentro del contenedor
# a un directorio llamado 'logs-worker' en la raíz de tu proyecto en la máquina local.
- ./logs-worker:/app/logs
# No se exponen puertos.
# Servicio del Frontend (servido por Nginx)
# Lo definimos ahora, aunque lo construiremos más adelante.
# Servicio del Frontend Público (sin cambios)
elecciones-frontend:
build:
context: ./Elecciones-Web/frontend
dockerfile: Dockerfile
container_name: elecciones-frontend
restart: unless-stopped
expose:
- "80"
networks:
- elecciones-net
# --- Frontend Admin ---
elecciones-frontend-admin:
build:
context: ./Elecciones-Web/frontend-admin
dockerfile: Dockerfile
container_name: elecciones-frontend-admin
restart: unless-stopped
expose:
- "80"
networks:
- elecciones-net
# No se exponen puertos.
# Proxy Inverso que expone los servicios al exterior
proxy:
@@ -48,21 +56,22 @@ services:
container_name: elecciones-proxy
restart: unless-stopped
volumes:
# Mapea nuestro archivo de configuración local al contenedor de Nginx
# Mapea nuestro archivo de configuración de proxy local al contenedor
- ./proxy/nginx.conf:/etc/nginx/conf.d/default.conf
ports:
# ÚNICO PUNTO DE ENTRADA: Expone el puerto 80 del contenedor al puerto 8600 del host.
# Puerto para el sitio público/widgets
- "8600:80"
# --- NUEVO PUERTO: Puerto para el panel de administración ---
- "8700:81"
networks:
- elecciones-net
depends_on:
- elecciones-api
- elecciones-frontend
- elecciones-frontend-admin
networks:
elecciones-net:
driver: bridge
# La red 'shared-net' ya existe en Docker.
shared-net:
external: true