Skip to content

Commit

Permalink
Merge pull request #12 from guimou/dev
Browse files Browse the repository at this point in the history
Release 0.0.12
  • Loading branch information
guimou authored Aug 4, 2022
2 parents 2765c9f + 8b159d2 commit 6fa3b7e
Show file tree
Hide file tree
Showing 8 changed files with 3,578 additions and 2 deletions.
6 changes: 6 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased]

- Monai notebook in the `notebook-controller-images` line. As it's not thoroughly tested it's still not officially released.

## [0.0.12] - 2022-08-04

### Added

- New organization of images for upcoming Kubeflow Notebook Controller
- Base, Minimal, Data Science, Code-Server and RStudio images available in the new `notebook-controller-images` line

Expand Down
2 changes: 1 addition & 1 deletion jupyterhub-images/monai-notebook/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,4 +13,4 @@ Project MONAI also includes MONAI Label, an intelligent open source image labeli

Streamlit turns data scripts into shareable web apps in minutes.
All in pure Python. No front‑end experience required.
See [details on Streamlit implementation](../streamlit-notebook/README.md).
See [details on Streamlit implementation](../streamlit-notebook/README.md).
13 changes: 13 additions & 0 deletions notebook-controller-images/s2i-monai/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
.PHONY: default ubi9-py39

TAG ?= $(shell git describe --tags --always --dirty)

default:
@echo "Options are:"
@echo "ubi9-py39 : builds an image based on UBI9 with Python 3.9"
@echo "---"
@echo "Please specify the base image with BASE_IMAGE=..."
@echo "Please specify the image tag with TAG=..."

ubi9-py39:
cd container && podman build --build-arg=BASE_IMAGE=${BASE_IMAGE} --build-arg=UBI_VERSION=ubi9 --build-arg=PYTHON_VERSION=py39 --build-arg=PYTHON_VERSION_LONG="Python 3.9" -t s2i-monai-notebook-ubi9-py39:${TAG} .
22 changes: 22 additions & 0 deletions notebook-controller-images/s2i-monai/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# S2I Monai image

Notebook based on the Data Science notebook, adding:

* [Monai](https://monai.io/) ([Github repo](https://github.com/Project-MONAI))

MONAI is a freely available, community-supported, PyTorch-based framework for deep learning in healthcare imaging. It provides domain-optimized foundational capabilities for developing healthcare imaging training workflows in a native PyTorch paradigm.
Project MONAI also includes MONAI Label, an intelligent open source image labeling and learning tool that helps researchers and clinicians collaborate, create annotated datasets, and build AI models in a standardized MONAI paradigm.

NOTE: CUDA is a requirement for Monai. However PyTorch is also a requirement, which comes with it own embedded CUDA when installed from PyPi (or Conda), so we can start from a standard image.

* [Streamlit](https://streamlit.io/) ([Github repo](https://github.com/streamlit/streamlit))

Streamlit turns data scripts into shareable web apps in minutes.
All in pure Python. No front‑end experience required.
See [details on Streamlit implementation](../streamlit-notebook/README.md).

Build example from UBI9 with Python 3.9:

```bash
make ubi9-py39 BASE_IMAGE=localhost/s2i-datascience-notebook-ubi9-py39:0.0.1 TAG=0.0.1
```
36 changes: 36 additions & 0 deletions notebook-controller-images/s2i-monai/container/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
ARG BASE_IMAGE
FROM ${BASE_IMAGE}

ARG CODESERVER_VERSION=v4.5.1

ARG UBI_VERSION
ARG PYTHON_VERSION
ARG PYTHON_VERSION_LONG

LABEL name="s2i-code-server-${UBI_VERSION}-${PYTHON_VERSION}:latest" \
summary="S2I Code-Server with ${PYTHON_VERSION_LONG} image based on ${UBI_VERSION}" \
description="Code-Server notebook with ${PYTHON_VERSION_LONG}, Source-to-Image from ${UBI_VERSION}" \
io.k8s.description="Code-Server notebook with ${PYTHON_VERSION_LONG}, Source-to-Image from ${UBI_VERSION}" \
io.k8s.display-name="S2I Code-Server notebook with ${PYTHON_VERSION_LONG} ${UBI_VERSION} image" \
authoritative-source-url="https://github.com/guimou/custom-notebooks" \
io.openshift.s2i.build.commit.ref="main" \
io.openshift.s2i.build.source-location="https://github.com/guimou/custom-notebooks/notebook-controller-images/s2i-code-server" \
io.openshift.s2i.build.image="https://quay.io/guimou/s2i-code-server-${UBI_VERSION}-${PYTHON_VERSION}"

####################
# Monai #
####################

USER 0

WORKDIR /tmp

# Copying custom packages
COPY Pipfile Pipfile.lock /tmp/
RUN micropipenv install --deploy && \
rm -rf /opt/app-root/lib/python3.9/site-packages/~*

WORKDIR /opt/app-root/src
USER 1001

CMD /opt/app-root/bin/start-singleuser.sh
63 changes: 63 additions & 0 deletions notebook-controller-images/s2i-monai/container/Pipfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
[[source]]
url = "https://pypi.org/simple"
verify_ssl = true
name = "pypi"

[[source]]
url = "https://download.pytorch.org/whl/cu116"
verify_ssl = true
name = "pytorch"

[packages]
aiohttp = "~=3.8.1"
beautifulsoup4 = "==4.11.1"
black = "==21.12b0"
bokeh = "~=2.4.3"
boto3 = "==1.24.39"
cloudpickle = "~=2.1.0"
cython = "==0.29.31"
dask = "==2022.7.1"
dill = "~=0.3.5.1"
distributed = "2022.7.1"
elyra-python-editor-extension = "==3.10.1"
greenlet = "~=1.1.2"
h5py = "~=3.7.0"
ipywidgets = "~=7.7.1"
jupyter-bokeh = "~=3.0.4"
jupyter-contrib-nbextensions = "~=0.5.1"
jupyter-server-proxy = "~=3.2.1"
jupyterlab = "~=3.4.4"
jupyterlab-git = "~=0.37.1"
jupyterlab-spellchecker = "~=0.7.2"
jupyterlab-tabnine = "==0.0.24"
kafka-python = "~=2.0.2"
matplotlib = "~=3.5.2"
monai = "~=0.9.1"
monai-deploy-app-sdk = "~=0.4.0"
nbgitpuller = "~=1.1.0"
notebook = "~=6.4.12"
numpy = "~=1.23.1"
pandas = "~=1.4.3"
pip = "==22.2.1"
plotly = "~=5.9.0"
pre-commit = "~=2.20.0"
pyarrow = "~=8.0.0"
pylint = "~=2.14.5"
rope = "~=1.1.1"
scikit-image = "~=0.19.3"
scikit-learn = "~=1.1.1"
scipy = "~=1.8.1"
seaborn = "~=0.11.2"
send2trash = "==1.8.0"
sqlalchemy = "~=1.4.39"
statsmodels = "~=0.13.2"
streamlit = "~=1.11.1"
streamlit-option-menu = "~=0.3.2"
torch = {version="~=1.12.0", index="pytorch"}
torchvision = "~=0.13.0"


[dev-packages]

[requires]
python_version = "3.9"
Loading

0 comments on commit 6fa3b7e

Please sign in to comment.