# InternetPressure backend image: api · engine · bgp · corroboration · migrate/cli (same image, different command). FROM python:3.12-slim AS base ENV PYTHONUNBUFFERED=1 PYTHONDONTWRITEBYTECODE=1 PIP_NO_CACHE_DIR=1 UV_SYSTEM_PYTHON=1 RUN apt-get update && apt-get install -y --no-install-recommends ca-certificates curl && rm -rf /var/lib/apt/lists/* \ && pip install --no-cache-dir uv WORKDIR /app COPY apps/api/pyproject.toml apps/api/README.md* /app/apps/api/ COPY apps/api/src /app/apps/api/src RUN cd /app/apps/api && uv pip install --system --no-cache . # runtime configuration & seeds are read from the repo layout (paths in compose.yml) COPY packages/config /app/packages/config COPY data/regions.yaml /app/data/regions.yaml COPY data/targets /app/data/targets COPY data/seed /app/data/seed RUN useradd -r -u 10001 -d /var/lib/ip ip && mkdir -p /var/lib/ip && chown ip:ip /var/lib/ip USER ip ENV IP_DATA_DIR=/var/lib/ip EXPOSE 8352 CMD ["ip", "api"]