Retry Docker UP
This commit is contained in:
@@ -20,8 +20,7 @@ builder.Services.AddCors(options =>
|
|||||||
options.AddPolicy(name: myAllowSpecificOrigins,
|
options.AddPolicy(name: myAllowSpecificOrigins,
|
||||||
policy =>
|
policy =>
|
||||||
{
|
{
|
||||||
//policy.WithOrigins("http://localhost:5173", "http://localhost:5174")
|
policy.WithOrigins("http://192.168.5.129:8081", "http://192.168.5.129:8082", "http://localhost:5173", "http://localhost:5174")
|
||||||
policy.WithOrigins("http://192.168.5.129:8081", "http://192.168.5.129:8082")
|
|
||||||
.AllowAnyHeader()
|
.AllowAnyHeader()
|
||||||
.AllowAnyMethod();
|
.AllowAnyMethod();
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ RUN npm install
|
|||||||
|
|
||||||
COPY . .
|
COPY . .
|
||||||
# Definimos la URL de la API para el panel de admin
|
# Definimos la URL de la API para el panel de admin
|
||||||
RUN VITE_API_BASE_URL=http://192.168.5.129:8080 npm run build
|
RUN VITE_API_BASE_URL="" npm run build
|
||||||
|
|
||||||
# ---- Etapa Final (Runtime) ----
|
# ---- Etapa Final (Runtime) ----
|
||||||
FROM nginx:alpine AS final
|
FROM nginx:alpine AS final
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ RUN npm install
|
|||||||
COPY . .
|
COPY . .
|
||||||
# IMPORTANTE: Aquí definimos la URL de la API para producción
|
# IMPORTANTE: Aquí definimos la URL de la API para producción
|
||||||
# El docker-compose se encargará de exponer la API en el puerto 8080 del host
|
# El docker-compose se encargará de exponer la API en el puerto 8080 del host
|
||||||
RUN VITE_API_BASE_URL=http://192.168.5.129:8080 npm run build
|
RUN VITE_API_BASE_URL="" npm run build
|
||||||
|
|
||||||
# ---- Etapa Final (Runtime) ----
|
# ---- Etapa Final (Runtime) ----
|
||||||
FROM nginx:alpine AS final
|
FROM nginx:alpine AS final
|
||||||
|
|||||||
@@ -5,17 +5,13 @@ services:
|
|||||||
dockerfile: Dockerfile.api
|
dockerfile: Dockerfile.api
|
||||||
container_name: chatbot-api
|
container_name: chatbot-api
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
ports:
|
env_file: ./.env # Usamos env_file para cargar todas las variables de .env
|
||||||
- "8080:80" # Mapea el puerto 80 del contenedor al 8080 de tu servidor Docker
|
|
||||||
environment:
|
environment:
|
||||||
# --- Variables de Entorno para la API ---
|
- ASPNETCORE_URLS=http://+:80 # Forzamos a escuchar en el puerto 80
|
||||||
# Docker Compose las leerá automáticamente desde el archivo .env
|
expose:
|
||||||
- ASPNETCORE_ENVIRONMENT=Production
|
- "80"
|
||||||
- ConnectionStrings__DefaultConnection=${DB_CONNECTION_STRING}
|
networks:
|
||||||
- Gemini__GeminiApiKey=${GEMINI_API_KEY}
|
- chatbot-net
|
||||||
- Jwt__Key=${JWT_KEY}
|
|
||||||
- Jwt__Issuer=${JWT_ISSUER}
|
|
||||||
- Jwt__Audience=${JWT_AUDIENCE}
|
|
||||||
|
|
||||||
chatbot-widget:
|
chatbot-widget:
|
||||||
build:
|
build:
|
||||||
@@ -23,8 +19,10 @@ services:
|
|||||||
dockerfile: Dockerfile.widget
|
dockerfile: Dockerfile.widget
|
||||||
container_name: chatbot-widget
|
container_name: chatbot-widget
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
ports:
|
expose:
|
||||||
- "8081:80" # Mapea el puerto 80 del contenedor Nginx al 8081 del host
|
- "80"
|
||||||
|
networks:
|
||||||
|
- chatbot-net
|
||||||
|
|
||||||
chatbot-admin:
|
chatbot-admin:
|
||||||
build:
|
build:
|
||||||
@@ -32,9 +30,29 @@ services:
|
|||||||
dockerfile: Dockerfile.admin
|
dockerfile: Dockerfile.admin
|
||||||
container_name: chatbot-admin
|
container_name: chatbot-admin
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
expose:
|
||||||
|
- "80"
|
||||||
|
networks:
|
||||||
|
- chatbot-net
|
||||||
|
|
||||||
|
proxy:
|
||||||
|
image: nginx:1.25-alpine
|
||||||
|
container_name: chatbot-proxy
|
||||||
|
restart: unless-stopped
|
||||||
|
volumes:
|
||||||
|
- ./proxy/nginx.conf:/etc/nginx/conf.d/default.conf
|
||||||
ports:
|
ports:
|
||||||
- "8082:80" # Mapea el puerto 80 del contenedor Nginx al 8082 del host
|
# Puerto para el widget y la API
|
||||||
|
- "8081:80"
|
||||||
|
# Puerto para el panel de administración
|
||||||
|
- "8082:81"
|
||||||
|
networks:
|
||||||
|
- chatbot-net
|
||||||
|
depends_on:
|
||||||
|
- chatbot-api
|
||||||
|
- chatbot-widget
|
||||||
|
- chatbot-admin
|
||||||
|
|
||||||
networks:
|
networks:
|
||||||
default:
|
chatbot-net:
|
||||||
driver: bridge
|
driver: bridge
|
||||||
51
proxy/nginx.conf
Normal file
51
proxy/nginx.conf
Normal file
@@ -0,0 +1,51 @@
|
|||||||
|
# /proxy/nginx.conf
|
||||||
|
|
||||||
|
# 1. Definimos los "upstreams", que son nuestros servicios de backend.
|
||||||
|
# Nginx usará los nombres de servicio definidos en docker-compose.
|
||||||
|
upstream api_server {
|
||||||
|
server chatbot-api:80;
|
||||||
|
}
|
||||||
|
|
||||||
|
upstream widget_server {
|
||||||
|
server chatbot-widget:80;
|
||||||
|
}
|
||||||
|
|
||||||
|
upstream admin_server {
|
||||||
|
server chatbot-admin:80;
|
||||||
|
}
|
||||||
|
|
||||||
|
# 2. Servidor para la API y el Widget
|
||||||
|
server {
|
||||||
|
listen 80; # Puerto de escucha para el tráfico principal (API y Widget)
|
||||||
|
|
||||||
|
# Regla para la API: si la URL empieza con /api/, reenvíala al contenedor de la API.
|
||||||
|
location /api/ {
|
||||||
|
proxy_pass http://api_server;
|
||||||
|
proxy_set_header Host $host;
|
||||||
|
proxy_set_header X-Real-IP $remote_addr;
|
||||||
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||||
|
proxy_set_header X-Forwarded-Proto $scheme;
|
||||||
|
}
|
||||||
|
|
||||||
|
# Regla para el Widget: si es cualquier otra cosa, asume que es para el widget.
|
||||||
|
location / {
|
||||||
|
proxy_pass http://widget_server;
|
||||||
|
proxy_set_header Host $host;
|
||||||
|
proxy_set_header X-Real-IP $remote_addr;
|
||||||
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||||
|
proxy_set_header X-Forwarded-Proto $scheme;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# 3. Servidor separado para el Panel de Administración
|
||||||
|
server {
|
||||||
|
listen 81; # Puerto de escucha para el tráfico del panel de admin
|
||||||
|
|
||||||
|
location / {
|
||||||
|
proxy_pass http://admin_server;
|
||||||
|
proxy_set_header Host $host;
|
||||||
|
proxy_set_header X-Real-IP $remote_addr;
|
||||||
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||||
|
proxy_set_header X-Forwarded-Proto $scheme;
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user