| | # syntax=docker/dockerfile:1.6 |
| |
|
| | ############################ |
| | # 1) Frontend build stage |
| | ############################ |
| | FROM node:20-alpine AS frontend-build |
| | WORKDIR /app |
| |
|
| | RUN apk add --no-cache libc6-compat |
| |
|
| | # Copy frontend |
| | COPY streaming-react-app/ ./ |
| |
|
| | # Install deps + build using the correct package manager |
| | RUN set -eux; \ |
| | if [ -f yarn.lock ]; then \ |
| | corepack enable && yarn --frozen-lockfile && yarn build; \ |
| | elif [ -f package-lock.json ]; then \ |
| | npm ci && npm run build; \ |
| | elif [ -f pnpm-lock.yaml ]; then \ |
| | corepack enable && pnpm i --frozen-lockfile && pnpm build; \ |
| | else \ |
| | echo "Lockfile not found." && exit 1; \ |
| | fi |
| |
|
| | ############################ |
| | # 2) Backend build stage |
| | ############################ |
| | FROM nvidia/cuda:11.8.0-cudnn8-devel-ubuntu22.04 AS backend-build |
| | ENV DEBIAN_FRONTEND=noninteractive |
| | WORKDIR /build |
| |
|
| | # System deps for building wheels + audio/video runtime deps (build stage) |
| | RUN apt-get update && apt-get install -y --no-install-recommends \ |
| | python3.10 python3.10-venv python3-pip \ |
| | git curl ca-certificates \ |
| | build-essential pkg-config cmake \ |
| | libsndfile1-dev \ |
| | sox libsox-dev libsox-fmt-all \ |
| | ffmpeg \ |
| | libjpeg-dev libpng-dev \ |
| | && rm -rf /var/lib/apt/lists |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |