File size: 1,044 Bytes
222b383
 
5fa7a59
222b383
 
5fa7a59
 
 
222b383
5fa7a59
682beef
222b383
 
 
 
 
 
 
 
 
 
 
5514460
222b383
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# ---------- build ----------
FROM node:20-alpine AS build
WORKDIR /app

# deps
COPY package.json package-lock.json* ./
RUN npm ci --no-audit --no-fund || npm i --no-audit --no-fund

# app source
COPY . .

# Mount HF secrets at build-time, write .env.production, then build
# (These IDs MUST match your Secrets names in the Settings tab)
RUN --mount=type=secret,id=VITE_SUPABASE_URL,mode=0444,required=true \
    --mount=type=secret,id=VITE_SUPABASE_ANON_KEY,mode=0444,required=true \
    sh -lc '\
      URL="$(cat /run/secrets/VITE_SUPABASE_URL)"; \
      ANON="$(cat /run/secrets/VITE_SUPABASE_ANON_KEY)"; \
      printf "VITE_SUPABASE_URL=%s\nVITE_SUPABASE_ANON_KEY=%s\n" "$URL" "$ANON" > .env.production; \
      echo "--- .env.production ---"; cat .env.production; echo "-----------------------"; \
      npm run build \
    '

# ---------- runtime ----------
FROM node:20-alpine AS runtime
WORKDIR /app

# serve built assets
COPY --from=build /app/dist ./dist
RUN npm i -g serve@14

EXPOSE 4173
CMD ["serve", "-s", "dist", "-l", "4173"]