Spaces:
Sleeping
Sleeping
| # syntax=docker/dockerfile:1 | |
| # ---------- Build stage ---------- | |
| # Compiles the TanStack Start app: static client (dist/client) + SSR handler | |
| # (dist/server/server.js). | |
| FROM node:22-slim AS build | |
| WORKDIR /app | |
| # Install dependencies first so this layer is cached unless the lockfile changes. | |
| COPY package.json package-lock.json ./ | |
| RUN npm ci | |
| # Copy the rest of the source and build. The prebuild step regenerates the | |
| # Bengaluru boundary, then `vite build` emits dist/. | |
| COPY . . | |
| RUN npm run build | |
| # ---------- Runtime stage ---------- | |
| # Ships the built app plus only the production dependencies the SSR handler | |
| # imports at runtime, and the small Node host that serves it. | |
| FROM node:22-slim AS runtime | |
| WORKDIR /app | |
| ENV NODE_ENV=production | |
| # Hugging Face Spaces routes incoming traffic to this port. | |
| ENV PORT=7860 | |
| ENV HOST=0.0.0.0 | |
| COPY package.json package-lock.json ./ | |
| RUN npm ci --omit=dev && npm cache clean --force | |
| COPY --from=build /app/dist ./dist | |
| COPY server.mjs ./server.mjs | |
| EXPOSE 7860 | |
| CMD ["node", "server.mjs"] | |