# API + Command Center UI. Stays slim — the heavy Ghidra lifting lives in the worker image. FROM python:3.12-slim WORKDIR /app # Copy metadata first for layer caching, then the source. COPY pyproject.toml README.md ./ COPY ams ./ams COPY ghidra_scripts ./ghidra_scripts COPY snapshots ./snapshots # The API needs the queue client too, to enqueue jobs. RUN pip install --no-cache-dir ".[api]" rq redis "psycopg[binary]>=3.1" ENV AMS_UPLOAD_DIR=/data/uploads EXPOSE 8000 CMD ["uvicorn", "ams.api.app:create_app", "--factory", "--host", "0.0.0.0", "--port", "8000"]