matgl-predictor / Dockerfile
Hafnium49's picture
Migrate DGL->PyG: matgl==4.0.1 + M3GNet-PES-MatPES-PBE-2025.2 (old MP-2021 model retired/404; pin matgl to stop unpinned-dep drift)
b3d927b verified
Raw
History Blame Contribute Delete
1.23 kB
# MatGL M3GNet predictor Space.
# 2026-06-05: migrated DGL -> PyG. The old DGL stack (dgl==2.2.0 + torchdata +
# the retired M3GNet-MP-2021.2.8-PES model) no longer works (model 404'd; MatGL
# dropped DGL at 3.0.4). Now: MatGL 4.x (PyG default) + torch-geometric.
# CRITICAL: matgl is PINNED (==4.0.1). The previous Dockerfile left `matgl`
# unpinned, so an HF rebuild silently pulled a newer matgl that broke model load.
FROM python:3.11-slim
WORKDIR /app
RUN apt-get update && apt-get install -y --no-install-recommends \
build-essential \
libcurl4 \
&& rm -rf /var/lib/apt/lists/*
# Pinned dependency stack (verified 2026-06-05: loads M3GNet-PES-MatPES-PBE-2025.2
# + predicts a NaCl cell = -1.969 eV).
RUN pip install --no-cache-dir "numpy<2"
RUN pip install --no-cache-dir torch==2.3.0 --index-url https://download.pytorch.org/whl/cpu
RUN pip install --no-cache-dir torch-geometric
RUN pip install --no-cache-dir "matgl==4.0.1" pymatgen gradio
# Non-root user (HF Spaces convention)
RUN useradd -m -u 1000 user
RUN chown -R user:user /app
USER user
ENV HOME=/home/user \
PATH=/home/user/.local/bin:$PATH \
HF_HOME=/app/.cache
COPY --chown=user app.py /app/
EXPOSE 7860
CMD ["python", "app.py"]