[verified] fix app-dev api proxy and build env
This commit is contained in:
parent
cd8ac38d39
commit
7326b9f3be
50
Dockerfile
50
Dockerfile
@ -7,13 +7,37 @@ RUN if [ ! -f package-lock.json ]; then npm install --package-lock-only; fi && n
|
||||
|
||||
COPY . .
|
||||
|
||||
# Vite bakes VITE_* values at build time, so compose must choose the env file
|
||||
# during image build, not only at container runtime.
|
||||
ARG ENV_FILE=.env
|
||||
COPY ${ENV_FILE} .env
|
||||
|
||||
# Run build with production mode
|
||||
RUN npm run build -- --mode production
|
||||
# Vite bakes VITE_* values at build time. Pass the public VITE_* values as
|
||||
# build args (docker compose --env-file .env.dev) instead of COPYing an env file;
|
||||
# service-host worktrees keep .env.dev as a symlink outside the Docker context.
|
||||
ARG VITE_API_BASE
|
||||
ARG VITE_API_URL
|
||||
ARG VITE_APP_NAME
|
||||
ARG VITE_APP_HMR_URL
|
||||
ARG VITE_DEV
|
||||
ARG VITE_FRONTEND_SITE_URL
|
||||
ARG VITE_SEARCH_URL
|
||||
ARG VITE_SUPABASE_ANON_KEY
|
||||
ARG VITE_SUPABASE_URL
|
||||
ARG VITE_SUPER_ADMIN_EMAIL
|
||||
ARG VITE_TLSYNC_URL
|
||||
ARG VITE_WHISPERLIVE_URL
|
||||
# Run build with production mode. Keep these as build-step environment values
|
||||
# rather than final-image ENV entries; Vite still embeds the public client config
|
||||
# into the static bundle, but nginx image metadata does not need them.
|
||||
RUN VITE_API_BASE="${VITE_API_BASE}" \
|
||||
VITE_API_URL="${VITE_API_URL}" \
|
||||
VITE_APP_NAME="${VITE_APP_NAME}" \
|
||||
VITE_APP_HMR_URL="${VITE_APP_HMR_URL}" \
|
||||
VITE_DEV="${VITE_DEV}" \
|
||||
VITE_FRONTEND_SITE_URL="${VITE_FRONTEND_SITE_URL}" \
|
||||
VITE_SEARCH_URL="${VITE_SEARCH_URL}" \
|
||||
VITE_SUPABASE_ANON_KEY="${VITE_SUPABASE_ANON_KEY}" \
|
||||
VITE_SUPABASE_URL="${VITE_SUPABASE_URL}" \
|
||||
VITE_SUPER_ADMIN_EMAIL="${VITE_SUPER_ADMIN_EMAIL}" \
|
||||
VITE_TLSYNC_URL="${VITE_TLSYNC_URL}" \
|
||||
VITE_WHISPERLIVE_URL="${VITE_WHISPERLIVE_URL}" \
|
||||
npm run build -- --mode production
|
||||
|
||||
FROM nginx:alpine
|
||||
# Copy built files
|
||||
@ -31,6 +55,18 @@ RUN echo 'server { \
|
||||
expires -1; \
|
||||
add_header Cache-Control "no-store, no-cache, must-revalidate"; \
|
||||
} \
|
||||
location = /health { \
|
||||
proxy_pass http://192.168.0.64:18000/health; \
|
||||
proxy_set_header Host $host; \
|
||||
proxy_set_header X-Real-IP $remote_addr; \
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; \
|
||||
} \
|
||||
location /api/ { \
|
||||
proxy_pass http://192.168.0.64:18000/api/; \
|
||||
proxy_set_header Host $host; \
|
||||
proxy_set_header X-Real-IP $remote_addr; \
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; \
|
||||
} \
|
||||
location / { \
|
||||
try_files $uri $uri/ /index.html; \
|
||||
expires 30d; \
|
||||
|
||||
@ -16,7 +16,18 @@ services:
|
||||
context: .
|
||||
dockerfile: Dockerfile
|
||||
args:
|
||||
ENV_FILE: .env.dev
|
||||
VITE_API_BASE: ${VITE_API_BASE:-}
|
||||
VITE_API_URL: ${VITE_API_URL:-}
|
||||
VITE_APP_NAME: ${VITE_APP_NAME:-Classroom Copilot}
|
||||
VITE_APP_HMR_URL: ${VITE_APP_HMR_URL:-}
|
||||
VITE_DEV: ${VITE_DEV:-false}
|
||||
VITE_FRONTEND_SITE_URL: ${VITE_FRONTEND_SITE_URL:-}
|
||||
VITE_SEARCH_URL: ${VITE_SEARCH_URL:-}
|
||||
VITE_SUPABASE_ANON_KEY: ${VITE_SUPABASE_ANON_KEY:-}
|
||||
VITE_SUPABASE_URL: ${VITE_SUPABASE_URL:-}
|
||||
VITE_SUPER_ADMIN_EMAIL: ${VITE_SUPER_ADMIN_EMAIL:-}
|
||||
VITE_TLSYNC_URL: ${VITE_TLSYNC_URL:-}
|
||||
VITE_WHISPERLIVE_URL: ${VITE_WHISPERLIVE_URL:-}
|
||||
env_file:
|
||||
- .env.dev
|
||||
ports:
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user