docker.videokonverter/Dockerfile
data e2bf70b280 perf: Performance-Optimierungen + TV-Cover vergroessert
- aiomysql Pool: minsize=2, maxsize=10, pool_recycle=300 (verhindert "gone away")
- Jinja2 Bytecode-Cache + auto_reload=False (3-5x schnelleres Rendering)
- HLS-Segmente: Cache-Header immutable (aggressives Browser-Caching)
- WebSocket: heartbeat=30s (erkennt tote Verbindungen automatisch)
- VAAPI: -low_power 1 fuer h264_vaapi (2-3x schnelleres GPU-Encoding)
- TV-Homepage: Cover um 40% vergroessert (alle Breakpoints)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-05 20:41:41 +01:00

57 lines
1.7 KiB
Docker

FROM ubuntu:24.04
# Basis-Pakete + ffmpeg + Intel GPU Treiber + gosu (fuer PUID/PGID User-Switching)
RUN apt-get update && apt-get install -y --no-install-recommends \
ffmpeg \
python3 \
python3-pip \
gosu \
intel-opencl-icd \
intel-media-va-driver-non-free \
libva-drm2 \
libva2 \
libmfx1 \
vainfo \
&& rm -rf /var/lib/apt/lists/*
# Umgebungsvariablen fuer Intel GPU
ENV LIBVA_DRIVER_NAME=iHD
ENV LIBVA_DRIVERS_PATH=/usr/lib/x86_64-linux-gnu/dri
# VideoKonverter Defaults (ueberschreibbar per docker run -e / Unraid UI)
ENV VK_DB_HOST=localhost
ENV VK_DB_PORT=3306
ENV VK_DB_USER=video
ENV VK_DB_PASSWORD=""
ENV VK_DB_NAME=video_converter
ENV VK_MODE=cpu
ENV VK_PORT=8080
ENV VK_LOG_LEVEL=INFO
WORKDIR /opt/video-konverter
# Python-Abhaengigkeiten
COPY requirements.txt .
RUN pip install --no-cache-dir --break-system-packages -r requirements.txt
# Anwendung kopieren (aus video-konverter Unterverzeichnis)
COPY video-konverter/__main__.py .
COPY video-konverter/app/ ./app/
# Default-Konfigdateien sichern (werden beim Start ins gemountete cfg kopiert)
RUN cp -r /opt/video-konverter/app/cfg /opt/video-konverter/cfg_defaults
# Daten- und Log-Verzeichnisse + HLS-Streaming (beschreibbar fuer UID 1000)
RUN mkdir -p /opt/video-konverter/data /opt/video-konverter/logs /tmp/hls /tmp/jinja2_cache \
&& chmod 777 /opt/video-konverter/data /opt/video-konverter/logs /tmp/hls /tmp/jinja2_cache
# Entrypoint (kopiert Defaults in gemountete Volumes)
COPY entrypoint.sh .
RUN chmod +x entrypoint.sh
# Konfiguration und Daten als Volumes
VOLUME ["/opt/video-konverter/app/cfg", "/opt/video-konverter/data", "/opt/video-konverter/logs"]
EXPOSE 8080
ENTRYPOINT ["./entrypoint.sh"]