From 9c9456693d3024aeaa3940db9a9bdb398062f18f Mon Sep 17 00:00:00 2001 From: Justin Lin Date: Fri, 2 May 2025 16:53:53 +0800 Subject: [PATCH] feat: handle dev server proxy by traefik --- app/vite.config.ts | 1 + docker-compose.yml | 5 +++++ traefik/conf/dev.yml | 24 ++++++++++++++++++++++++ 3 files changed, 30 insertions(+) create mode 100644 traefik/conf/dev.yml diff --git a/app/vite.config.ts b/app/vite.config.ts index 542e7d1..8ab4871 100644 --- a/app/vite.config.ts +++ b/app/vite.config.ts @@ -15,6 +15,7 @@ export default defineConfig({ }, }, server: { + host: '0.0.0.0', proxy: { '/trpc': { target: process.env.API_TARGET || 'http://localhost:3000', diff --git a/docker-compose.yml b/docker-compose.yml index 6d90b61..f4d3dfc 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -8,14 +8,19 @@ services: - '--api.insecure=true' - '--providers.docker=true' - '--providers.docker.exposedbydefault=false' + - '--providers.file.directory=/etc/traefik/conf' + - '--providers.file.watch=true' - '--entrypoints.web.address=:80' - '--entrypoints.websecure.address=:443' ports: - '80:80' - '443:443' - '8080:8080' + extra_hosts: + - 'host.docker.internal:host-gateway' volumes: - /var/run/docker.sock:/var/run/docker.sock:ro + - ./traefik/conf:/etc/traefik/conf db: image: mongo:6 diff --git a/traefik/conf/dev.yml b/traefik/conf/dev.yml new file mode 100644 index 0000000..dd0d99f --- /dev/null +++ b/traefik/conf/dev.yml @@ -0,0 +1,24 @@ +http: + routers: + frontend: + rule: 'PathPrefix(`/`)' + service: frontend + entryPoints: + - web + + backend: + rule: 'PathPrefix(`/api`, `/socket.io`, `/trpc`, `/api-docs`)' + service: backend + entryPoints: + - web + + services: + frontend: + loadBalancer: + servers: + - url: 'http://host.docker.internal:5173' + + backend: + loadBalancer: + servers: + - url: 'http://host.docker.internal:3000'