Add Docker Compose deployment with multi-stage build and nginx

Multi-stage Dockerfile builds the Vite app in Node 22 and serves static
assets from nginx:alpine. Includes gzip compression, SPA fallback routing,
immutable cache headers for hashed assets, and configurable port mapping
(default 8080). Deploy with `docker compose up -d`.
This commit is contained in:
2026-02-28 23:01:50 -05:00
parent 7a8330e205
commit 663d70e44b
9 changed files with 249 additions and 0 deletions

21
nginx.conf Normal file
View File

@@ -0,0 +1,21 @@
server {
listen 80;
root /usr/share/nginx/html;
index index.html;
# Gzip compression
gzip on;
gzip_types text/html text/css application/javascript application/json;
gzip_min_length 256;
# Hashed assets — cache forever
location /assets/ {
add_header Cache-Control "public, max-age=31536000, immutable";
}
# SPA fallback — no-cache on index.html
location / {
add_header Cache-Control "no-cache";
try_files $uri $uri/ /index.html;
}
}