FROM python:3.11-slim AS builder WORKDIR /app COPY pyproject.toml README.md ./ COPY src/ ./src/ RUN pip install --no-cache-dir --prefix=/install ".[server]" FROM python:3.11-slim AS runner WORKDIR /app ENV PYTHONUNBUFFERED=1 ENV PYTHONDONTWRITEBYTECODE=1 COPY --from=builder /install /usr/local COPY pyproject.toml README.md ./ COPY src/ ./src/ RUN addgroup --system --gid 1001 appuser \ && adduser --system --uid 1001 appuser \ && chown -R appuser:appuser /app USER appuser EXPOSE 8001 HEALTHCHECK --interval=30s --timeout=10s --start-period=30s --retries=3 \ CMD python -c "import urllib.request; urllib.request.urlopen('http://localhost:8001/api/v1/health')" CMD ["uvicorn", "configs.geo_server:create_geo_app", "--factory", "--host", "0.0.0.0", "--port", "8001"]