Feat Docker Files
This commit is contained in:
25
frontend/Dockerfile
Normal file
25
frontend/Dockerfile
Normal file
@@ -0,0 +1,25 @@
|
||||
# --- Etapa 1: Compilación (Build) ---
|
||||
FROM node:20-alpine AS build
|
||||
WORKDIR /app
|
||||
|
||||
# Copiar package.json y package-lock.json para instalar dependencias
|
||||
COPY package*.json ./
|
||||
RUN npm install
|
||||
|
||||
# Copiar el resto del código fuente del frontend
|
||||
COPY . .
|
||||
|
||||
# Construir la aplicación de producción
|
||||
RUN npm run build
|
||||
|
||||
# --- Etapa 2: Servidor de Producción (Final) ---
|
||||
FROM nginx:1.25-alpine
|
||||
|
||||
# Copiar los archivos estáticos construidos en la etapa anterior al directorio web de Nginx
|
||||
COPY --from=build /app/dist /usr/share/nginx/html
|
||||
|
||||
# Exponer el puerto 80, que es el puerto por defecto de Nginx
|
||||
EXPOSE 80
|
||||
|
||||
# El comando por defecto de la imagen de Nginx se encargará de iniciar el servidor
|
||||
CMD ["nginx", "-g", "daemon off;"]
|
||||
40
frontend/proxy/nginx.conf
Normal file
40
frontend/proxy/nginx.conf
Normal file
@@ -0,0 +1,40 @@
|
||||
# Define el servidor upstream para la API, usando el nombre del servicio de Docker Compose
|
||||
upstream api_server {
|
||||
server titulares-api:8080;
|
||||
}
|
||||
|
||||
server {
|
||||
listen 80;
|
||||
|
||||
# Redirigir todas las peticiones que comiencen con /api/ al servicio del backend
|
||||
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;
|
||||
|
||||
# Cabeceras importantes para SignalR (WebSockets)
|
||||
proxy_http_version 1.1;
|
||||
proxy_set_header Upgrade $http_upgrade;
|
||||
proxy_set_header Connection "Upgrade";
|
||||
}
|
||||
|
||||
# Redirigir todas las peticiones que comiencen con /titularesHub (para SignalR)
|
||||
location /titularesHub {
|
||||
proxy_pass http://api_server;
|
||||
proxy_http_version 1.1;
|
||||
proxy_set_header Upgrade $http_upgrade;
|
||||
proxy_set_header Connection "Upgrade";
|
||||
proxy_set_header Host $host;
|
||||
proxy_cache_bypass $http_upgrade;
|
||||
}
|
||||
|
||||
# Servir los archivos del frontend para todas las demás peticiones
|
||||
location / {
|
||||
root /usr/share/nginx/html;
|
||||
index index.html;
|
||||
# Esta línea es crucial para que el enrutamiento de React funcione correctamente (Single Page Application)
|
||||
try_files $uri $uri/ /index.html;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user