FROM python:3.11-slim

WORKDIR /app

RUN pip install uv --no-cache-dir

COPY pyproject.toml ./
COPY src/ ./src/

RUN uv pip install --system --no-cache \
        "mcp[server]" psutil pyyaml uvicorn starlette fastapi pydantic

EXPOSE 7848

ENV PORTMAP_NODE_ID=docker-node \
    ARCHIPEL_URL="" \
    ARCHIPEL_API_KEY="" \
    PYTHONPATH=/app/src

HEALTHCHECK --interval=5s --timeout=3s --retries=5 \
    CMD python -c "import urllib.request; urllib.request.urlopen('http://localhost:7848/health')"

CMD ["uvicorn", "portmap.app:app", "--host", "0.0.0.0", "--port", "7848"]
