|
| 1 | +FROM nvidia/opengl:1.2-glvnd-devel-ubuntu22.04 |
| 2 | + |
| 3 | +WORKDIR /app |
| 4 | + |
| 5 | +# Avoid buffering the server URL |
| 6 | +ENV PYTHONUNBUFFERED=1 |
| 7 | + |
| 8 | +# Prevent apt from prompting us about various decisions |
| 9 | +ENV DEBIAN_FRONTEND=noninteractive |
| 10 | + |
| 11 | +# Allow driver to do rendering |
| 12 | +ENV NVIDIA_DRIVER_CAPABILITIES=all |
| 13 | +ENV NVIDIA_VISIBLE_DEVICES=all |
| 14 | + |
| 15 | +# Install trame-slicer dependencies and pyenv build dependencies |
| 16 | +RUN apt-get update && apt-get install -y libturbojpeg \ |
| 17 | + make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev curl git |
| 18 | + libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev |
| 19 | + |
| 20 | +# Install Pyenv |
| 21 | +ENV HOME=/root |
| 22 | +ENV PYENV_DIR="${HOME}/.pyenv" |
| 23 | +RUN curl -fsSL https://pyenv.run | bash && \ |
| 24 | + echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc && \ |
| 25 | + echo '[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc && \ |
| 26 | + echo 'eval "$(pyenv init - bash)"' >> ~/.bashrc |
| 27 | +ENV PATH="${PYENV_DIR}/shims:${PYENV_DIR}/bin:${PATH}" |
| 28 | + |
| 29 | +# Install SHARED Python3.10 |
| 30 | +RUN PYTHON_CONFIGURE_OPTS="--enable-shared" pyenv install 3.10.18 && \ |
| 31 | + pyenv global 3.10.18 && \ |
| 32 | + python -m pip install --upgrade pip |
| 33 | + |
| 34 | +# Install trame-slicer |
| 35 | +RUN mkdir trame_slicer |
| 36 | +COPY . trame_slicer |
| 37 | +RUN pip install --no-cache-dir ./trame_slicer && \ |
| 38 | + pip install --no-cache-dir https://github.com/KitwareMedical/trame-slicer/releases/download/v1.4.0/vtk_mrml-9.4.0-cp310-cp310-manylinux_2_35_x86_64.whl |
| 39 | + |
| 40 | +RUN chmod +x /app/trame_slicer/docker_run.sh |
| 41 | +ENTRYPOINT ["/app/trame_slicer/docker_run.sh"] |
0 commit comments