# GPU-accelerated worker — requires NVIDIA Container Toolkit on the host # Build: docker compose -f docker-compose.yml -f docker-compose.gpu.yml build worker # # Prerequisites: # - NVIDIA drivers installed on host # - NVIDIA Container Toolkit: https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/ # - GPU capability in docker-compose.gpu.yml enables NVENC access FROM nvcr.io/nvidia/cuda:12.3.1-base-ubuntu22.04 # Install Node.js 20, ffmpeg (Ubuntu's ffmpeg includes h264_nvenc/hevc_nvenc), # and yt-dlp for the YouTube importer. # # yt-dlp is NOT installed from apt: Ubuntu 22.04's package is pinned to a 2022 # release, which YouTube has long since broken (extraction fails). yt-dlp must # track YouTube's frequent changes, so we pull the latest self-contained # release binary at build time. /usr/local/bin precedes /usr/bin on PATH, so # `yt-dlp` resolves to this one. Rebuild the worker image to refresh it. RUN apt-get update && apt-get install -y --no-install-recommends \ curl ca-certificates ffmpeg python3 \ && curl -fsSL https://deb.nodesource.com/setup_20.x | bash - \ && apt-get install -y --no-install-recommends nodejs \ && curl -fsSL https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp_linux \ -o /usr/local/bin/yt-dlp \ && chmod a+rx /usr/local/bin/yt-dlp \ && apt-get clean && rm -rf /var/lib/apt/lists/* WORKDIR /app COPY package*.json ./ RUN npm install --omit=dev COPY src ./src CMD ["node", "src/index.js"]