Fix: API Key validation from database, Python 3.12 compatibility, persistent volumes

This commit is contained in:
Dominic Ballenthin
2026-01-29 01:25:11 +01:00
parent 008ef63bfd
commit c5ecd2ee76
5 changed files with 76 additions and 24 deletions

View File

@@ -3,18 +3,33 @@ FROM nvidia/cuda:12.1.0-runtime-ubuntu22.04
# Prevent interactive prompts
ENV DEBIAN_FRONTEND=noninteractive
# Install system dependencies
# Install system dependencies with Python 3.12 from deadsnakes PPA
RUN apt-get update && apt-get install -y \
python3.11 \
python3.11-pip \
python3.11-venv \
software-properties-common \
pkg-config \
&& add-apt-repository ppa:deadsnakes/ppa -y \
&& apt-get update \
&& apt-get install -y \
python3.12 \
python3.12-dev \
python3.12-venv \
ffmpeg \
libavformat-dev \
libavcodec-dev \
libavdevice-dev \
libavutil-dev \
libavfilter-dev \
libswscale-dev \
libswresample-dev \
curl \
&& rm -rf /var/lib/apt/lists/*
# Set Python 3.11 as default
RUN update-alternatives --install /usr/bin/python python /usr/bin/python3.11 1
RUN update-alternatives --install /usr/bin/pip pip /usr/bin/pip3 1
# Install pip for Python 3.12
RUN curl -sS https://bootstrap.pypa.io/get-pip.py | python3.12
# Set Python 3.12 as default
RUN update-alternatives --install /usr/bin/python python /usr/bin/python3.12 1
RUN update-alternatives --install /usr/bin/pip pip /usr/local/bin/pip3 1
# Set working directory
WORKDIR /app
@@ -23,12 +38,19 @@ WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
# Copy entrypoint script
COPY docker/entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh
# Create necessary directories
RUN mkdir -p /app/models /app/data /app/uploads
# Copy application code
COPY src/ ./src/
# Set entrypoint
ENTRYPOINT ["/entrypoint.sh"]
# Set environment variables
ENV PYTHONPATH=/app
ENV PYTHONUNBUFFERED=1

9
docker/entrypoint.sh Normal file
View File

@@ -0,0 +1,9 @@
#!/bin/bash
set -e
# Create directories if they don't exist and set permissions
mkdir -p /app/data /app/uploads /app/models
chmod 777 /app/data /app/uploads /app/models
# Start the application
exec "$@"