Files
mc_domain_proxy/docker-compose.yml
claude-bot 9489bdb362 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.
2026-05-23 17:21:22 +09:00

50 lines
922 B
YAML

services:
proxy:
build: ./proxy
container_name: mc-filter-proxy
ports:
- "25565:25565"
volumes:
- ./data:/data
restart: unless-stopped
networks:
- mc-filter
api:
build: ./api
container_name: mc-filter-api
expose:
- "8000"
volumes:
- ./data:/data
restart: unless-stopped
networks:
- mc-filter
frontend:
build: ./frontend
container_name: mc-filter-frontend
expose:
- "80"
restart: unless-stopped
networks:
- mc-filter
nginx:
image: nginx:alpine
container_name: mc-filter-nginx
ports:
- "8080:80" # 대시보드 접근 포트 (외부 포트포워딩 금지 권장)
volumes:
- ./nginx/nginx.conf:/etc/nginx/nginx.conf:ro
depends_on:
- api
- frontend
restart: unless-stopped
networks:
- mc-filter
networks:
mc-filter:
driver: bridge