- Force IPv4 (IPv6 shows 33% packet loss) - Increase retries to 5 - Add 10s timeouts to fail fast and retry - Previous fix improved from 1630s to 78s but still hangs Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
31 lines
1.1 KiB
Docker
31 lines
1.1 KiB
Docker
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"]
|