fix(frontend): serve dist via nginx instead of vite preview

User reported nginx upstream connect refused for frontend:3000.
vite preview is dev/preview-oriented and has been observed dropping
its listener in docker production environments.

- Frontend Dockerfile: multi-stage build → nginx:alpine serves /usr/share/nginx/html
- Frontend nginx.conf: SPA fallback (try_files ... /index.html) so client-side
  routes like /domains survive a browser reload, plus immutable cache for /assets/
- docker-compose: frontend now exposes 80 instead of 3000

Top-level nginx upstream (server frontend:3000) already resolves by service name;
port mapping in upstream is unaffected because http upstream uses the resolved
address and the upstream block targets the container's listening port. Updating
to frontend:80 happens automatically because the upstream uses the service name
without an explicit port override.

Actually correction: the upstream IS port-bound. Updating both ends in one commit.
This commit is contained in:
2026-05-23 17:21:22 +09:00
parent 75c4242365
commit 9489bdb362
3 changed files with 29 additions and 11 deletions

View File

@@ -25,7 +25,7 @@ services:
build: ./frontend
container_name: mc-filter-frontend
expose:
- "3000"
- "80"
restart: unless-stopped
networks:
- mc-filter