Spaces:
Sleeping
Sleeping
Seth commited on
Commit Β·
e3165a6
1
Parent(s): 233f83e
update
Browse files- Dockerfile +8 -19
- frontend/build-env.sh +38 -17
Dockerfile
CHANGED
|
@@ -3,7 +3,7 @@ FROM node:20-alpine AS frontend-build
|
|
| 3 |
WORKDIR /frontend
|
| 4 |
|
| 5 |
# Accept build arguments for Vite environment variables
|
| 6 |
-
# Hugging Face Spaces
|
| 7 |
ARG VITE_FIREBASE_API_KEY
|
| 8 |
ARG VITE_FIREBASE_AUTH_DOMAIN
|
| 9 |
ARG VITE_FIREBASE_PROJECT_ID
|
|
@@ -12,7 +12,8 @@ ARG VITE_FIREBASE_MESSAGING_SENDER_ID
|
|
| 12 |
ARG VITE_FIREBASE_APP_ID
|
| 13 |
ARG VITE_API_BASE_URL
|
| 14 |
|
| 15 |
-
#
|
|
|
|
| 16 |
ENV VITE_FIREBASE_API_KEY=$VITE_FIREBASE_API_KEY
|
| 17 |
ENV VITE_FIREBASE_AUTH_DOMAIN=$VITE_FIREBASE_AUTH_DOMAIN
|
| 18 |
ENV VITE_FIREBASE_PROJECT_ID=$VITE_FIREBASE_PROJECT_ID
|
|
@@ -25,25 +26,13 @@ ENV VITE_API_BASE_URL=$VITE_API_BASE_URL
|
|
| 25 |
COPY frontend/package*.json ./
|
| 26 |
RUN npm install
|
| 27 |
|
| 28 |
-
# Copy rest of frontend
|
| 29 |
COPY frontend/ .
|
| 30 |
|
| 31 |
-
#
|
| 32 |
-
# Hugging Face Spaces
|
| 33 |
-
RUN
|
| 34 |
-
|
| 35 |
-
[ -z "$VITE_FIREBASE_AUTH_DOMAIN" ] && echo "WARNING: VITE_FIREBASE_AUTH_DOMAIN is not set" || echo "β VITE_FIREBASE_AUTH_DOMAIN is set" && \
|
| 36 |
-
[ -z "$VITE_FIREBASE_PROJECT_ID" ] && echo "WARNING: VITE_FIREBASE_PROJECT_ID is not set" || echo "β VITE_FIREBASE_PROJECT_ID is set" && \
|
| 37 |
-
echo "VITE_FIREBASE_API_KEY=${VITE_FIREBASE_API_KEY}" > .env && \
|
| 38 |
-
echo "VITE_FIREBASE_AUTH_DOMAIN=${VITE_FIREBASE_AUTH_DOMAIN}" >> .env && \
|
| 39 |
-
echo "VITE_FIREBASE_PROJECT_ID=${VITE_FIREBASE_PROJECT_ID}" >> .env && \
|
| 40 |
-
echo "VITE_FIREBASE_STORAGE_BUCKET=${VITE_FIREBASE_STORAGE_BUCKET}" >> .env && \
|
| 41 |
-
echo "VITE_FIREBASE_MESSAGING_SENDER_ID=${VITE_FIREBASE_MESSAGING_SENDER_ID}" >> .env && \
|
| 42 |
-
echo "VITE_FIREBASE_APP_ID=${VITE_FIREBASE_APP_ID}" >> .env && \
|
| 43 |
-
echo "VITE_API_BASE_URL=${VITE_API_BASE_URL}" >> .env && \
|
| 44 |
-
echo "Created .env file with environment variables" && \
|
| 45 |
-
echo "Contents of .env file:" && \
|
| 46 |
-
cat .env && \
|
| 47 |
npm run build
|
| 48 |
# Vite will output to /frontend/dist by default
|
| 49 |
|
|
|
|
| 3 |
WORKDIR /frontend
|
| 4 |
|
| 5 |
# Accept build arguments for Vite environment variables
|
| 6 |
+
# Hugging Face Spaces should pass these as build args, but we'll also check environment
|
| 7 |
ARG VITE_FIREBASE_API_KEY
|
| 8 |
ARG VITE_FIREBASE_AUTH_DOMAIN
|
| 9 |
ARG VITE_FIREBASE_PROJECT_ID
|
|
|
|
| 12 |
ARG VITE_FIREBASE_APP_ID
|
| 13 |
ARG VITE_API_BASE_URL
|
| 14 |
|
| 15 |
+
# Export as environment variables so the build script can access them
|
| 16 |
+
# Use ARG value if provided, otherwise it will be empty and script will check env
|
| 17 |
ENV VITE_FIREBASE_API_KEY=$VITE_FIREBASE_API_KEY
|
| 18 |
ENV VITE_FIREBASE_AUTH_DOMAIN=$VITE_FIREBASE_AUTH_DOMAIN
|
| 19 |
ENV VITE_FIREBASE_PROJECT_ID=$VITE_FIREBASE_PROJECT_ID
|
|
|
|
| 26 |
COPY frontend/package*.json ./
|
| 27 |
RUN npm install
|
| 28 |
|
| 29 |
+
# Copy rest of frontend (including build script)
|
| 30 |
COPY frontend/ .
|
| 31 |
|
| 32 |
+
# Make build script executable and run it to create .env file
|
| 33 |
+
# Hugging Face Spaces makes environment variables available during build
|
| 34 |
+
RUN chmod +x build-env.sh && \
|
| 35 |
+
./build-env.sh && \
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 36 |
npm run build
|
| 37 |
# Vite will output to /frontend/dist by default
|
| 38 |
|
frontend/build-env.sh
CHANGED
|
@@ -1,22 +1,43 @@
|
|
| 1 |
#!/bin/sh
|
| 2 |
-
#
|
| 3 |
-
# This
|
| 4 |
|
| 5 |
-
|
| 6 |
-
echo "Checking environment variables..."
|
| 7 |
-
[ -z "$VITE_FIREBASE_API_KEY" ] && echo "WARNING: VITE_FIREBASE_API_KEY is not set" || echo "β VITE_FIREBASE_API_KEY is set"
|
| 8 |
-
[ -z "$VITE_FIREBASE_AUTH_DOMAIN" ] && echo "WARNING: VITE_FIREBASE_AUTH_DOMAIN is not set" || echo "β VITE_FIREBASE_AUTH_DOMAIN is set"
|
| 9 |
-
[ -z "$VITE_FIREBASE_PROJECT_ID" ] && echo "WARNING: VITE_FIREBASE_PROJECT_ID is not set" || echo "β VITE_FIREBASE_PROJECT_ID is set"
|
| 10 |
|
| 11 |
-
|
| 12 |
-
|
| 13 |
-
VITE_FIREBASE_AUTH_DOMAIN=${VITE_FIREBASE_AUTH_DOMAIN:-}
|
| 14 |
-
VITE_FIREBASE_PROJECT_ID=${VITE_FIREBASE_PROJECT_ID:-}
|
| 15 |
-
VITE_FIREBASE_STORAGE_BUCKET=${VITE_FIREBASE_STORAGE_BUCKET:-}
|
| 16 |
-
VITE_FIREBASE_MESSAGING_SENDER_ID=${VITE_FIREBASE_MESSAGING_SENDER_ID:-}
|
| 17 |
-
VITE_FIREBASE_APP_ID=${VITE_FIREBASE_APP_ID:-}
|
| 18 |
-
VITE_API_BASE_URL=${VITE_API_BASE_URL:-}
|
| 19 |
-
EOF
|
| 20 |
|
| 21 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 22 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
#!/bin/sh
|
| 2 |
+
# Build script that creates .env file from environment variables
|
| 3 |
+
# This works with Hugging Face Spaces which makes env vars available during build
|
| 4 |
|
| 5 |
+
set -e # Exit on error
|
|
|
|
|
|
|
|
|
|
|
|
|
| 6 |
|
| 7 |
+
echo "=== Checking environment variables ==="
|
| 8 |
+
echo "Note: Variables can come from ARG (build args) or ENV (environment)"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 9 |
|
| 10 |
+
# Check and report status - check both ARG (from ENV) and direct environment
|
| 11 |
+
API_KEY="${VITE_FIREBASE_API_KEY}"
|
| 12 |
+
AUTH_DOMAIN="${VITE_FIREBASE_AUTH_DOMAIN}"
|
| 13 |
+
PROJECT_ID="${VITE_FIREBASE_PROJECT_ID}"
|
| 14 |
+
STORAGE_BUCKET="${VITE_FIREBASE_STORAGE_BUCKET}"
|
| 15 |
+
MESSAGING_SENDER_ID="${VITE_FIREBASE_MESSAGING_SENDER_ID}"
|
| 16 |
+
APP_ID="${VITE_FIREBASE_APP_ID}"
|
| 17 |
+
API_BASE_URL="${VITE_API_BASE_URL}"
|
| 18 |
|
| 19 |
+
[ -z "$API_KEY" ] && echo "WARNING: VITE_FIREBASE_API_KEY is not set" || echo "β VITE_FIREBASE_API_KEY is set"
|
| 20 |
+
[ -z "$AUTH_DOMAIN" ] && echo "WARNING: VITE_FIREBASE_AUTH_DOMAIN is not set" || echo "β VITE_FIREBASE_AUTH_DOMAIN is set"
|
| 21 |
+
[ -z "$PROJECT_ID" ] && echo "WARNING: VITE_FIREBASE_PROJECT_ID is not set" || echo "β VITE_FIREBASE_PROJECT_ID is set"
|
| 22 |
+
[ -z "$STORAGE_BUCKET" ] && echo "WARNING: VITE_FIREBASE_STORAGE_BUCKET is not set" || echo "β VITE_FIREBASE_STORAGE_BUCKET is set"
|
| 23 |
+
[ -z "$MESSAGING_SENDER_ID" ] && echo "WARNING: VITE_FIREBASE_MESSAGING_SENDER_ID is not set" || echo "β VITE_FIREBASE_MESSAGING_SENDER_ID is set"
|
| 24 |
+
[ -z "$APP_ID" ] && echo "WARNING: VITE_FIREBASE_APP_ID is not set" || echo "β VITE_FIREBASE_APP_ID is set"
|
| 25 |
+
[ -z "$API_BASE_URL" ] && echo "WARNING: VITE_API_BASE_URL is not set" || echo "β VITE_API_BASE_URL is set"
|
| 26 |
+
|
| 27 |
+
echo ""
|
| 28 |
+
echo "=== Creating .env file ==="
|
| 29 |
+
|
| 30 |
+
# Create .env file (use empty string if variable is not set)
|
| 31 |
+
echo "VITE_FIREBASE_API_KEY=${API_KEY}" > .env
|
| 32 |
+
echo "VITE_FIREBASE_AUTH_DOMAIN=${AUTH_DOMAIN}" >> .env
|
| 33 |
+
echo "VITE_FIREBASE_PROJECT_ID=${PROJECT_ID}" >> .env
|
| 34 |
+
echo "VITE_FIREBASE_STORAGE_BUCKET=${STORAGE_BUCKET}" >> .env
|
| 35 |
+
echo "VITE_FIREBASE_MESSAGING_SENDER_ID=${MESSAGING_SENDER_ID}" >> .env
|
| 36 |
+
echo "VITE_FIREBASE_APP_ID=${APP_ID}" >> .env
|
| 37 |
+
echo "VITE_API_BASE_URL=${API_BASE_URL}" >> .env
|
| 38 |
+
|
| 39 |
+
echo "β Created .env file"
|
| 40 |
+
echo ""
|
| 41 |
+
echo "=== Contents of .env file ==="
|
| 42 |
+
cat .env
|
| 43 |
+
echo ""
|