FROM python:3.12-slim

# Force IPv4 and use German mirror with aggressive retry/timeout settings
RUN echo "Acquire::ForceIPv4 \"true\";" > /etc/apt/apt.conf.d/99force-ipv4 && \
    echo "Acquire::Retries \"5\";" > /etc/apt/apt.conf.d/80-retries && \
    echo "Acquire::http::Timeout \"10\";" >> /etc/apt/apt.conf.d/80-retries && \
    echo "Acquire::ftp::Timeout \"10\";" >> /etc/apt/apt.conf.d/80-retries && \
    echo "deb http://ftp.de.debian.org/debian bookworm main" > /etc/apt/sources.list && \
    echo "deb http://ftp.de.debian.org/debian bookworm-updates main" >> /etc/apt/sources.list

# Install PostgreSQL client for psql (needed for startup.sh)
RUN apt-get update && apt-get install -y postgresql-client && rm -rf /var/lib/apt/lists/*

WORKDIR /app

# Install Python dependencies
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt

# Copy application code
COPY . .

# Create directories
RUN mkdir -p /app/data /app/photos

# Make startup script executable
RUN chmod +x /app/startup.sh

# Use startup script instead of direct uvicorn
CMD ["/app/startup.sh"]
