FROM python:3.12-slim WORKDIR /app # Install system dependencies for paramiko RUN apt-get update && apt-get install -y --no-install-recommends \ openssh-client \ && rm -rf /var/lib/apt/lists/* # Copy requirements first for better caching COPY requirements.txt . RUN pip install --no-cache-dir -r requirements.txt # Copy application code COPY src/ ./src/ COPY pyproject.toml . # Install the application RUN pip install --no-cache-dir . # Create data directory for state persistence RUN mkdir -p /app/data # Create .ssh directory for keys (owned by runtime user 1000:1000) RUN mkdir -p /app/.ssh && chmod 700 /app/.ssh && chown 1000:1000 /app/.ssh ENV PYTHONUNBUFFERED=1 ENV STATE_FILE=/app/data/state.json ENV SSH_KEY_PATH=/app/.ssh/id_rsa CMD ["python", "-m", "tvh2jellyfin.main"]