# Use Python 3.13 slim image as base FROM python:3.13.9-slim # Set environment variables ENV PYTHONDONTWRITEBYTECODE=1 \ PYTHONUNBUFFERED=1 \ PYTHONPATH=/app \ DJANGO_SETTINGS_MODULE=dbapp.settings.production # Install system dependencies including GDAL and PostGIS dependencies RUN apt-get update && apt-get install -y \ gdal-bin \ libgdal-dev \ proj-bin \ proj-data \ libproj-dev \ libgeos-dev \ postgresql-client \ build-essential \ libpq-dev \ && rm -rf /var/lib/apt/lists/* # Set work directory WORKDIR /app # Copy project files COPY pyproject.toml uv.lock ./ # Install uv and dependencies RUN pip install --no-cache-dir uv && \ uv sync --frozen --no-dev # Copy project code (после установки зависимостей для лучшего кэширования) COPY . . # Collect static files RUN uv run manage.py collectstatic --noinput # Expose port EXPOSE 8000 # Run gunicorn server CMD [".venv/bin/gunicorn", "--bind", "0.0.0.0:8000", "--workers", "3", "dbapp.wsgi:application"]