FROM python:3.11-slim # Create and set the working directory WORKDIR /app # Prevent some interactive prompts during package installation ENV DEBIAN_FRONTEND=noninteractive # Install ffmpeg and other system dependencies. The list largely mirrors # the original project but omits PostgreSQL development headers which are # unused here. We include libgl1 and libglib2.0-0 so that MoviePy # (through its dependencies) can find OpenGL and GLib when using the # Pillow and numpy backends. RUN apt-get update && \ apt-get install -y --no-install-recommends \ ffmpeg \ libgl1 \ libglib2.0-0 \ build-essential \ xvfb \ xdg-utils \ wget \ unzip \ ffmpeg \ libgomp1 \ libpq-dev \ vim \ libmagick++-dev \ imagemagick \ fonts-liberation \ sox \ bc \ gsfonts && \ rm -rf /var/lib/apt/lists/* # Copy dependency specification and install Python dependencies COPY requirements.txt ./ RUN pip install --no-cache-dir -r requirements.txt # Copy the rest of the application code COPY . . # Declare volumes for videos and outputs. These paths correspond to the # mount points defined in the docker-compose file. Using VOLUME here # documents the intended persistent storage locations. VOLUME ["/app/videos", "/app/outputs"] # The default command starts the consumer loop CMD ["python", "-u", "main.py"]