Spaces:
Running
Running
| # Hugging Face Spaces image. Extends the official SIE server image, adds | |
| # Node 22 for the UI server, and runs both processes from one container. | |
| # | |
| # This Dockerfile is HF Spaces specific. Local Docker users should use | |
| # compose.yml (which just runs the unmodified upstream SIE image with the | |
| # Node UI on the host). | |
| # | |
| # We use a multi-stage build to grab Node binaries from the official | |
| # node:22-bookworm-slim image. HF Spaces' build sandbox restricts apt-key | |
| # tmp-file writes, so installing Node via apt fails. Copy approach avoids | |
| # apt entirely. | |
| # --- stage 1: pull Node binaries --- | |
| FROM node:22-bookworm-slim AS node | |
| # --- stage 2: final image --- | |
| FROM ghcr.io/superlinked/sie-server:latest-cpu-transformers5 | |
| USER root | |
| # Copy Node 22 from the official image (no apt, no apt-key). | |
| COPY --from=node /usr/local/bin/node /usr/local/bin/node | |
| COPY --from=node /usr/local/lib/node_modules /usr/local/lib/node_modules | |
| RUN ln -s /usr/local/lib/node_modules/npm/bin/npm-cli.js /usr/local/bin/npm \ | |
| && ln -s /usr/local/lib/node_modules/npm/bin/npx-cli.js /usr/local/bin/npx \ | |
| && node --version && npm --version | |
| # HF Spaces' persistent storage lives at /data (50 GB free tier). | |
| # Send the HuggingFace cache there so model weights survive Space restarts. | |
| ENV HF_HOME=/data/.cache/huggingface | |
| # UI server lives under /app/ui (the SIE base image already owns /app/...) | |
| WORKDIR /app/ui | |
| COPY package.json tsconfig.json ./ | |
| RUN npm install --silent | |
| COPY src ./src | |
| COPY web ./web | |
| COPY data ./data | |
| # Entrypoint script orchestrates both processes (SIE in background, UI in foreground). | |
| COPY hf-entrypoint.sh /usr/local/bin/hf-entrypoint.sh | |
| RUN chmod +x /usr/local/bin/hf-entrypoint.sh | |
| # Make /app/ui world-readable so any HF Space user account can access it. | |
| # Also make /data writable so the HF cache can be written there. | |
| RUN chmod -R a+rx /app/ui && mkdir -p /data && chmod -R a+rwx /data | |
| EXPOSE 7860 | |
| ENTRYPOINT ["/usr/local/bin/hf-entrypoint.sh"] | |