Spaces:
Running
Running
Jimin Huang
commited on
Commit
·
5514460
1
Parent(s):
c366854
Change settings
Browse files- Dockerfile +10 -11
- index.html +0 -1
- src/lib/supabase.js +9 -2
Dockerfile
CHANGED
|
@@ -1,19 +1,18 @@
|
|
|
|
|
| 1 |
FROM node:20-alpine AS deps
|
| 2 |
WORKDIR /app
|
| 3 |
COPY package.json package-lock.json* ./
|
| 4 |
RUN npm ci --no-audit --no-fund || npm i --no-audit --no-fund
|
| 5 |
|
| 6 |
-
|
|
|
|
| 7 |
WORKDIR /app
|
| 8 |
COPY --from=deps /app/node_modules ./node_modules
|
| 9 |
COPY . .
|
| 10 |
-
|
| 11 |
-
|
| 12 |
-
|
| 13 |
-
|
| 14 |
-
|
| 15 |
-
|
| 16 |
-
CMD sh -lc '
|
| 17 |
-
printf "window.__RUNTIME_CONFIG__={VITE_SUPABASE_URL:\"%s\",VITE_SUPABASE_ANON_KEY:\"%s\"};" "$VITE_SUPABASE_URL" "$VITE_SUPABASE_ANON_KEY" > /app/dist/env.js && \
|
| 18 |
-
npm run build && \
|
| 19 |
-
npx vite preview --host 0.0.0.0 --port 4173'
|
|
|
|
| 1 |
+
# Install deps
|
| 2 |
FROM node:20-alpine AS deps
|
| 3 |
WORKDIR /app
|
| 4 |
COPY package.json package-lock.json* ./
|
| 5 |
RUN npm ci --no-audit --no-fund || npm i --no-audit --no-fund
|
| 6 |
|
| 7 |
+
# Final runtime image
|
| 8 |
+
FROM node:20-alpine
|
| 9 |
WORKDIR /app
|
| 10 |
COPY --from=deps /app/node_modules ./node_modules
|
| 11 |
COPY . .
|
| 12 |
+
|
| 13 |
+
# Expose the port used by `vite preview`
|
| 14 |
+
EXPOSE 4173
|
| 15 |
+
|
| 16 |
+
# IMPORTANT: build at container start (runtime), so VITE_* from Space Variables are available
|
| 17 |
+
# No env.js generation needed
|
| 18 |
+
CMD sh -lc 'npm run build && npx vite preview --host 0.0.0.0 --port 4173'
|
|
|
|
|
|
|
|
|
index.html
CHANGED
|
@@ -3,7 +3,6 @@
|
|
| 3 |
<head>
|
| 4 |
<meta charset="UTF-8" />
|
| 5 |
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
| 6 |
-
<script src="/env.js"></script>
|
| 7 |
<title>Paper Trading Agents</title>
|
| 8 |
</head>
|
| 9 |
<body>
|
|
|
|
| 3 |
<head>
|
| 4 |
<meta charset="UTF-8" />
|
| 5 |
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
|
|
| 6 |
<title>Paper Trading Agents</title>
|
| 7 |
</head>
|
| 8 |
<body>
|
src/lib/supabase.js
CHANGED
|
@@ -1,7 +1,14 @@
|
|
| 1 |
import { createClient } from '@supabase/supabase-js'
|
| 2 |
-
import { SUPABASE_URL, SUPABASE_ANON_KEY } from './runtimeEnv';
|
| 3 |
|
| 4 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 5 |
|
| 6 |
// Helper to run GraphQL queries for features not available in REST
|
| 7 |
export async function graphql(query, variables) {
|
|
|
|
| 1 |
import { createClient } from '@supabase/supabase-js'
|
|
|
|
| 2 |
|
| 3 |
+
const url = import.meta.env.VITE_SUPABASE_URL;
|
| 4 |
+
const anon = import.meta.env.VITE_SUPABASE_ANON_KEY;
|
| 5 |
+
|
| 6 |
+
if (!url || !anon) {
|
| 7 |
+
// Fail loudly so blank pages don't hide the problem
|
| 8 |
+
throw new Error('Missing VITE_SUPABASE_URL or VITE_SUPABASE_ANON_KEY');
|
| 9 |
+
}
|
| 10 |
+
|
| 11 |
+
export const supabase = createClient(url, anon);
|
| 12 |
|
| 13 |
// Helper to run GraphQL queries for features not available in REST
|
| 14 |
export async function graphql(query, variables) {
|