| # syntax=docker/dockerfile:1.7 | |
| # Linux/amd64 descriptor resolved from the official Python registry on 2026-07-28. | |
| ARG BASE_IMAGE=python:3.12-slim@sha256:cab2dbf575e971934a81e4622f5aba17aa7929719bd7e31033a3a83b97fd0464 | |
| FROM ${BASE_IMAGE} | |
| ARG SCIENCE_SPEC_SHA256=c0ded12138cb7c15a15966294ed9bdb87d3a66d2373a7d90050578dbb973c6fd | |
| LABEL org.opencontainers.image.title="neutral-sheaf-admm-reproduction" | |
| LABEL org.opencontainers.image.licenses="Apache-2.0" | |
| LABEL org.opencontainers.image.revision="1e2b5d648361802234348b0b1a7fb3a222128e7d" | |
| LABEL reproduction.science-spec-sha256="${SCIENCE_SPEC_SHA256}" | |
| ENV PYTHONDONTWRITEBYTECODE=1 \ | |
| PYTHONUNBUFFERED=1 \ | |
| JAX_DEFAULT_MATMUL_PRECISION=highest \ | |
| TRACE_MODE=none \ | |
| TRACKIO_LOGBOOK_AUTONOTE=0 | |
| WORKDIR /repro | |
| COPY pyproject.toml uv.lock README.md LICENSE SCIENCE-SPEC.yaml ./ | |
| RUN test "$(sha256sum SCIENCE-SPEC.yaml | cut -d' ' -f1)" = "${SCIENCE_SPEC_SHA256}" \ | |
| && python -m pip install --no-cache-dir uv==0.11.9 \ | |
| && uv sync --frozen --no-dev | |
| COPY configs ./configs | |
| COPY src ./src | |
| COPY scripts ./scripts | |
| ENV PATH="/repro/.venv/bin:${PATH}" PYTHONPATH="/repro/src" | |
| EXPOSE 7860 | |
| CMD ["python", "-m", "http.server", "7860"] | |