FROM python:3.13-slim # Install system dependencies RUN apt-get update && apt-get install -y \ gdal-bin \ libgdal-dev \ proj-bin \ proj-data \ libproj-dev \ libproj25 \ libgeos-dev \ libgeos-c1v5 \ build-essential \ postgresql-client \ libpq-dev \ libpq5 \ netcat-openbsd \ gcc \ g++ \ && rm -rf /var/lib/apt/lists/* # Set environment variables ENV PYTHONDONTWRITEBYTECODE=1 \ PYTHONUNBUFFERED=1 # Set work directory WORKDIR /app # Upgrade pip RUN pip install --upgrade pip # Copy requirements file COPY requirements.txt ./ # Install dependencies RUN pip install --no-cache-dir -r requirements.txt # Copy project files COPY . . # Create directories RUN mkdir -p /app/staticfiles /app/logs /app/media # Set permissions for entrypoint RUN chmod +x /app/entrypoint.sh # Create non-root user RUN useradd --create-home --shell /bin/bash app && \ chown -R app:app /app USER app # Expose port EXPOSE 8000 # Run entrypoint script ENTRYPOINT ["/app/entrypoint.sh"]