Spaces:
Paused
Paused
| FROM node:22-slim | |
| WORKDIR /app | |
| SHELL ["/bin/bash", "-o", "pipefail", "-c"] | |
| # hadolint ignore=DL3008 | |
| RUN set -ex; \ | |
| export DEBIAN_FRONTEND=noninteractive; \ | |
| apt-get update; \ | |
| apt-get install -y --no-install-recommends \ | |
| python3 \ | |
| python3-pip \ | |
| python3-full \ | |
| ffmpeg \ | |
| curl \ | |
| unzip; \ | |
| curl -fsSL https://deno.land/install.sh | sh; \ | |
| rm -rf /var/lib/apt/lists/* | |
| ENV DENO_INSTALL="/root/.deno" | |
| ENV PATH="$DENO_INSTALL/bin:$PATH" | |
| RUN python3 -m venv /opt/tool-venv \ | |
| && /opt/tool-venv/bin/pip install --upgrade pip \ | |
| && /opt/tool-venv/bin/pip install --upgrade --pre yt-dlp kaggle yt-dlp-getpot-wpc | |
| ENV PATH="/opt/tool-venv/bin:$PATH" | |
| # shared has its own deps (zod) the schemas need | |
| WORKDIR /app/shared | |
| COPY web/shared/ ./ | |
| RUN npm ci | |
| WORKDIR /app/backend | |
| COPY web/backend/package*.json ./ | |
| RUN npm ci | |
| COPY web/backend/ ./ | |
| RUN npx tsc | |
| RUN mkdir -p temp && chmod 777 temp | |
| ENV PORT=8000 | |
| ENV API_ONLY=true | |
| EXPOSE 8000 | |
| CMD ["node", "--import", "./dist/backend/src/instrument.js", "dist/backend/src/app.js"] | |