feat: Configuración inicial de Docker Compose, Nginx y proyectos .NET
This commit is contained in:
@@ -0,0 +1,65 @@
|
||||
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
|
||||
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.
|
||||
|
||||
# Servicio del Worker para la ingesta de datos
|
||||
elecciones-worker:
|
||||
build:
|
||||
context: ./Elecciones-Web
|
||||
dockerfile: src/Elecciones.Worker/Dockerfile
|
||||
container_name: elecciones-worker
|
||||
restart: unless-stopped
|
||||
env_file:
|
||||
- ./.env
|
||||
networks:
|
||||
- shared-net # Solo necesita acceso a la DB y a la API electoral (internet).
|
||||
# No se exponen puertos.
|
||||
|
||||
# Servicio del Frontend (servido por Nginx)
|
||||
# Lo definimos ahora, aunque lo construiremos más adelante.
|
||||
elecciones-frontend:
|
||||
build:
|
||||
context: ./Elecciones-Web/frontend
|
||||
dockerfile: Dockerfile
|
||||
container_name: elecciones-frontend
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- elecciones-net
|
||||
# No se exponen puertos.
|
||||
|
||||
# Proxy Inverso que expone los servicios al exterior
|
||||
proxy:
|
||||
image: nginx:1.25-alpine
|
||||
container_name: elecciones-proxy
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
# Mapea nuestro archivo de configuración local al contenedor de Nginx
|
||||
- ./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.
|
||||
- "8600:80"
|
||||
networks:
|
||||
- elecciones-net
|
||||
depends_on:
|
||||
- elecciones-api
|
||||
- elecciones-frontend
|
||||
|
||||
networks:
|
||||
elecciones-net:
|
||||
driver: bridge
|
||||
|
||||
# Asumimos que la red 'shared-net' ya existe en Docker.
|
||||
# Para crearla manualmente: docker network create shared-net
|
||||
shared-net:
|
||||
external: true
|
||||
Reference in New Issue
Block a user