Hoy os voy a compartir una configuración de contenedor para React basado en Nginx.

Para ello vamos a crear este docker-compose.yml
version: '3.1'
services:
nginx_frailstop:
build: .
container_name: nginx_frailstop
restart: unless-stopped
ports:
- "80:80"
- "443:443"
volumes:
- ./dist:/usr/share/nginx/html
- ./config/nginx/cache/:/var/cache/nginx/
- ./config/nginx/sites/:/etc/nginx/sites-enabled/
- ./config/nginx/config/nginx.conf:/etc/nginx/nginx.conf
Ahora vamos a crear nuestro Dockerfile
# syntax=docker/dockerfile:1 FROM nginx:alpine # Copia los archivos estáticos de la carpeta /dist al directorio de Nginx COPY dist /usr/share/nginx/html # Expone el puerto 80 (el puerto por defecto de Nginx) EXPOSE 80 # Comando para iniciar Nginx en primer plano CMD ["nginx", "-g", "daemon off;"]
Finalmente, crearemos las carpetas necesarias:
config
nginx
cache
config -> nginx.conf
sites
El fichero nginx.conf debe contener:
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log notice;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#Desactivar cache:
fastcgi_cache_bypass $http_cache_control;
fastcgi_no_cache $http_cache_control;
#gzip on;
server {
listen 80;
server_name localhost;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
try_files $uri $uri/ /index.html;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
include /etc/nginx/conf.d/*.conf;
}
Recuerda que la carpeta de distribución de React generada con Vite está dentro de dist, debes ponerla en la raíz de esta configuración.
Quedando asi:

Ahora utilizaremos el comando:
docker compose up -d
Y podremos ver el resultado en el puerto 80: localhost:80.

Ingeniero en Informática, Investigador, me encanta crear cosas o arreglarlas y darles una nueva vida. Escritor y poeta. Más de 20 APPs publicadas y un libro en Amazon.