ARG PYTOMO_BASE_IMAGE=synerbi/sirf:latest
FROM ${PYTOMO_BASE_IMAGE}

ENV PYTHONDONTWRITEBYTECODE=1
ENV PYTHONUNBUFFERED=1
ENV SIRF_INSTALL_PATH=/opt/SIRF-SuperBuild/INSTALL
ENV SIMIND_ROOT=/workspace/simind
ENV SIMIND_BIN=${SIMIND_ROOT}/simind
ENV SIMIND_MPI_BIN=${SIMIND_ROOT}/simind_mpi
ENV SIMIND_SMC_DIR=${SIMIND_ROOT}/smc_dir/
ENV SIMIND_DATA_DIR=${SIMIND_ROOT}/smc_dir/
ENV SMC_DIR=${SIMIND_ROOT}/smc_dir/
ENV SIMIND_PYTHON_CONNECTOR_BLOCK_IMPORTS=sirf,stir,stirextra
ENV PYTHONPATH=/workspace/docker/import_guard:${SIRF_INSTALL_PATH}/python
ENV LD_LIBRARY_PATH=/opt/conda/lib:${SIRF_INSTALL_PATH}/lib:${SIRF_INSTALL_PATH}/lib64:${LD_LIBRARY_PATH}
ENV PATH=${SIMIND_ROOT}/bin:${SIMIND_ROOT}:${SIRF_INSTALL_PATH}/bin:${PATH}

WORKDIR /workspace

COPY --chown=1000:100 . /workspace

RUN python -m pip install --upgrade pip \
    && pip install --index-url https://download.pytorch.org/whl/cpu torch \
    && pip install pytomography --no-deps \
    && pip install fft-conv-pytorch kornia pydicom rt-utils torchrbf uproot \
    && pip install --constraint /workspace/docker/constraints.txt -e ".[dev,examples]" \
    && python - <<'PY'
import importlib
for module in ("torch", "pytomography", "pytest"):
    importlib.import_module(module)
print("PyTomography modules available")
PY

CMD ["python", "examples/07C_pytomography_adaptor_osem.py"]
