Fix API URL config: use Next.js rewrite proxy instead of NEXT_PUBLIC_*

NEXT_PUBLIC_* is baked at build time so runtime docker-compose environment
vars have no effect. Instead:
- next.config.ts rewrites /api/* -> API_BASE_URL/api/* at the server level
- api.ts uses relative paths (no env var in client bundle at all)
- docker-compose passes API_BASE_URL=http://cvfs-backend:8080 at runtime
- Dockerfile no longer needs any build args

Requests: browser -> Next.js server (/api/*) -> cvfs-backend:8080 (/api/*)

https://claude.ai/code/session_01Xmxm2QLgFBgRJyYD6VukR6
This commit is contained in:
Claude
2026-04-02 18:23:58 +00:00
parent 53a05feae5
commit f3d1ddad5d
4 changed files with 9 additions and 6 deletions

View File

@@ -3,6 +3,10 @@ import path from "node:path";
const nextConfig: NextConfig = {
outputFileTracingRoot: path.join(process.cwd(), "../.."),
async rewrites() {
const backend = process.env.API_BASE_URL ?? "http://localhost:9812";
return [{ source: "/api/:path*", destination: `${backend}/api/:path*` }];
},
};
export default nextConfig;