Spaces:
Running
Running
Commit
·
51de453
1
Parent(s):
ee058aa
back docker file
Browse files- Dockerfile +33 -26
Dockerfile
CHANGED
|
@@ -1,26 +1,33 @@
|
|
| 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 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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"]
|