# 基础镜像按 digest 钉死，不用 tag——tag 会被重新指向，digest 不会。
# 这里写全仓库名（dockerproxy.net/library/python），因为本机没配 registry mirror，
# 只写 python 会去 docker.io 拉。
FROM dockerproxy.net/library/python:3.13-slim@sha256:8d9d0b8bcf6506481eae4907c18f5e3e7902e629f5f6d684f9e7c32e85e3ddf0
# 每次运行只给一个核。numba 不设这个变量时 parallel=True 会按宿主核数开线程
# （调研_填圆运行环境依赖.md 3.3 实测开 16 个）；写在镜像里，由镜像编号钉住，
# 不依赖每份配置记得写。数学库的线程数由 task.env 的 OMP_NUM_THREADS 管。
ENV NUMBA_NUM_THREADS=1
COPY requirements.txt /req.txt
RUN pip install --no-cache-dir -r /req.txt
