Spaces:
Sleeping
Sleeping
| # FAL AI 视频生成器 - Hugging Face Spaces (Docker Runtime) | |
| # Node 18 Alpine minimal image | |
| FROM node:18-alpine | |
| # Set working directory | |
| WORKDIR /app | |
| # Install runtime tools (curl) for HEALTHCHECK | |
| RUN apk add --no-cache curl | |
| # Set env | |
| ENV NODE_ENV=production | |
| # Copy package manifests | |
| COPY package.json package-lock.json* ./ | |
| # Install deps | |
| # Use npm ci when package-lock.json exists; fallback to npm install otherwise | |
| RUN if [ -f package-lock.json ]; then npm ci --omit=dev; else npm install --omit=dev; fi | |
| # Copy app code | |
| COPY server.js ./server.js | |
| COPY public ./public | |
| # Create writable dirs | |
| RUN mkdir -p video uploads && \ | |
| adduser -D -h /app appuser && \ | |
| chown -R appuser:appuser /app | |
| # Expose default port | |
| EXPOSE 7860 | |
| # Healthcheck (uses PORT if provided by platform) | |
| HEALTHCHECK --interval=30s --timeout=10s --start-period=60s --retries=3 \ | |
| CMD curl -sf http://127.0.0.1:${PORT:-7860}/api/health || exit 1 | |
| # Run as non-root | |
| USER appuser | |
| # Start | |
| CMD ["node","server.js"] |