Jimin Huang commited on
Commit
222b383
·
1 Parent(s): 6fbd4c7

Change settings

Browse files
Files changed (1) hide show
  1. Dockerfile +26 -18
Dockerfile CHANGED
@@ -1,25 +1,33 @@
1
- # Install deps
2
- ARG VITE_SUPABASE_URL
3
- ARG VITE_SUPABASE_ANON_KEY
4
- FROM node:20-alpine AS deps
5
  WORKDIR /app
 
 
6
  COPY package.json package-lock.json* ./
7
  RUN npm ci --no-audit --no-fund || npm i --no-audit --no-fund
8
 
9
- # Final runtime image
10
- FROM node:20-alpine
11
- WORKDIR /app
12
- COPY --from=deps /app/node_modules ./node_modules
13
  COPY . .
14
 
15
- # Expose to Vite during `vite build`
16
- ENV VITE_SUPABASE_URL=$VITE_SUPABASE_URL
17
- ENV VITE_SUPABASE_ANON_KEY=$VITE_SUPABASE_ANON_KEY
18
- EXPOSE 4173
 
 
 
 
 
 
 
19
 
20
- CMD sh -lc '\
21
- echo "Writing .env.production from runtime envs..."; \
22
- env \
23
- printf "VITE_SUPABASE_URL=%s\nVITE_SUPABASE_ANON_KEY=%s\n" "$VITE_SUPABASE_URL" "$VITE_SUPABASE_ANON_KEY" > .env.production; \
24
- echo "--- .env.production ---"; cat .env.production; echo "-----------------------"; \
25
- npm run build && npx vite preview --host 0.0.0.0 --port 4173'
 
 
 
 
 
1
+ # ---------- build ----------
2
+ FROM node:20-alpine AS build
 
 
3
  WORKDIR /app
4
+
5
+ # deps
6
  COPY package.json package-lock.json* ./
7
  RUN npm ci --no-audit --no-fund || npm i --no-audit --no-fund
8
 
9
+ # app source
 
 
 
10
  COPY . .
11
 
12
+ # Mount HF secrets at build-time, write .env.production, then build
13
+ # (These IDs MUST match your Secrets names in the Settings tab)
14
+ RUN --mount=type=secret,id=VITE_SUPABASE_URL,mode=0444,required=true \
15
+ --mount=type=secret,id=VITE_SUPABASE_ANON_KEY,mode=0444,required=true \
16
+ sh -lc '\
17
+ URL="$(cat /run/secrets/VITE_SUPABASE_URL)"; \
18
+ ANON="$(cat /run/secrets/VITE_SUPABASE_ANON_KEY)"; \
19
+ printf "VITE_SUPABASE_URL=%s\nVITE_SUPABASE_ANON_KEY=%s\n" "$URL" "$ANON" > .env.production; \
20
+ echo "--- .env.production ---"; cat .env.production; echo "-----------------------"; \
21
+ npm run build \
22
+ '
23
 
24
+ # ---------- runtime ----------
25
+ FROM node:20-alpine AS runtime
26
+ WORKDIR /app
27
+
28
+ # serve built assets
29
+ COPY --from=build /app/dist ./dist
30
+ RUN npm i -g serve@14
31
+
32
+ EXPOSE 4173
33
+ CMD ["serve", "-s", "dist", "-l", "4173"]