123
This commit is contained in:
@ -3,9 +3,12 @@ const nextConfig = {
|
||||
reactStrictMode: true,
|
||||
eslint: { ignoreDuringBuilds: true },
|
||||
transpilePackages: ['@coursecraft/shared'],
|
||||
// Проксируем /api на бэкенд — в браузере запросы идут на тот же хост, без localhost
|
||||
// Проксируем /api на бэкенд — в браузере запросы идут на тот же хост
|
||||
// INTERNAL_API_URL используется в Docker (не конфликтует с .env),
|
||||
// API_URL — fallback для локальной разработки
|
||||
async rewrites() {
|
||||
const apiUrl = process.env.API_URL || 'http://127.0.0.1:3125';
|
||||
const apiUrl = process.env.INTERNAL_API_URL || process.env.API_URL || 'http://127.0.0.1:3125';
|
||||
console.log('[next.config] rewrites destination:', apiUrl);
|
||||
return [{ source: '/api/:path*', destination: `${apiUrl}/api/:path*` }];
|
||||
},
|
||||
images: {
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
// В браузере — относительный URL (запросы на тот же хост, Next проксирует /api на бэкенд)
|
||||
const API_BASE =
|
||||
typeof window !== 'undefined' ? '' : (process.env.API_URL || 'http://localhost:3125');
|
||||
typeof window !== 'undefined' ? '' : (process.env.INTERNAL_API_URL || process.env.API_URL || 'http://localhost:3125');
|
||||
const API_URL = API_BASE ? `${API_BASE.replace(/\/$/, '')}/api` : '/api';
|
||||
|
||||
const STORAGE_KEY = 'coursecraft_api_token';
|
||||
|
||||
@ -100,15 +100,14 @@ services:
|
||||
context: .
|
||||
dockerfile: docker/Dockerfile.web
|
||||
args:
|
||||
API_URL: http://api:3125
|
||||
INTERNAL_API_URL: http://api:3125
|
||||
NEXT_PUBLIC_SUPABASE_URL: ${NEXT_PUBLIC_SUPABASE_URL}
|
||||
NEXT_PUBLIC_SUPABASE_ANON_KEY: ${NEXT_PUBLIC_SUPABASE_ANON_KEY}
|
||||
NEXT_PUBLIC_APP_URL: ${NEXT_PUBLIC_APP_URL:-http://localhost:3080}
|
||||
container_name: coursecraft-web
|
||||
restart: unless-stopped
|
||||
# NB: no env_file here — .env contains API_URL=localhost which breaks Docker networking
|
||||
environment:
|
||||
API_URL: http://api:3125
|
||||
INTERNAL_API_URL: http://api:3125
|
||||
NEXT_PUBLIC_SUPABASE_URL: ${NEXT_PUBLIC_SUPABASE_URL}
|
||||
NEXT_PUBLIC_SUPABASE_ANON_KEY: ${NEXT_PUBLIC_SUPABASE_ANON_KEY}
|
||||
NEXT_PUBLIC_APP_URL: ${NEXT_PUBLIC_APP_URL:-http://localhost:3080}
|
||||
|
||||
@ -19,12 +19,13 @@ RUN pnpm install --frozen-lockfile
|
||||
COPY . .
|
||||
|
||||
# These are needed at build time: Next.js inlines NEXT_PUBLIC_* into client bundle
|
||||
ARG API_URL=http://api:3125
|
||||
# INTERNAL_API_URL is used for rewrites (avoids conflict with .env's API_URL)
|
||||
ARG INTERNAL_API_URL=http://api:3125
|
||||
ARG NEXT_PUBLIC_SUPABASE_URL
|
||||
ARG NEXT_PUBLIC_SUPABASE_ANON_KEY
|
||||
ARG NEXT_PUBLIC_APP_URL=http://localhost:3080
|
||||
|
||||
ENV API_URL=${API_URL}
|
||||
ENV INTERNAL_API_URL=${INTERNAL_API_URL}
|
||||
ENV NEXT_PUBLIC_SUPABASE_URL=${NEXT_PUBLIC_SUPABASE_URL}
|
||||
ENV NEXT_PUBLIC_SUPABASE_ANON_KEY=${NEXT_PUBLIC_SUPABASE_ANON_KEY}
|
||||
ENV NEXT_PUBLIC_APP_URL=${NEXT_PUBLIC_APP_URL}
|
||||
|
||||
@ -97,15 +97,14 @@ services:
|
||||
context: ..
|
||||
dockerfile: docker/Dockerfile.web
|
||||
args:
|
||||
API_URL: http://api:3125
|
||||
INTERNAL_API_URL: http://api:3125
|
||||
NEXT_PUBLIC_SUPABASE_URL: ${NEXT_PUBLIC_SUPABASE_URL}
|
||||
NEXT_PUBLIC_SUPABASE_ANON_KEY: ${NEXT_PUBLIC_SUPABASE_ANON_KEY}
|
||||
NEXT_PUBLIC_APP_URL: ${NEXT_PUBLIC_APP_URL:-http://localhost:3080}
|
||||
container_name: coursecraft-web
|
||||
restart: unless-stopped
|
||||
# NB: no env_file here — .env contains API_URL=localhost which breaks Docker networking
|
||||
environment:
|
||||
API_URL: http://api:3125
|
||||
INTERNAL_API_URL: http://api:3125
|
||||
NEXT_PUBLIC_SUPABASE_URL: ${NEXT_PUBLIC_SUPABASE_URL}
|
||||
NEXT_PUBLIC_SUPABASE_ANON_KEY: ${NEXT_PUBLIC_SUPABASE_ANON_KEY}
|
||||
NEXT_PUBLIC_APP_URL: ${NEXT_PUBLIC_APP_URL:-http://localhost:3080}
|
||||
|
||||
Reference in New Issue
Block a user