This template can be used to develop container images with data processing notebooks which will be automatically deployed in two varieties:
- An interactive - jupyterlab - environment, for running both locally and on the hosted JupyterLab instance
- A headless processing image, for running both locally and as a cluster job
- Add your Python requirements to the
project.dependencies
section within thepyproject.toml
. - Fill in
notebook.ipynb
with whatever processing you wish to perform. - Update your README to describe what your bookshelf does.
Simply "create a release" on github, this will trigger a set of continuous integration (CI) jobs defined in .github/workflows
to generate and publish the specified container images.
To update the versions available via the diamond module system, run the Project General installation jenkins job for the "bookshelf" package; This will query the GitHub API and catalogue all container images in the DiamondLightSource repository with the required metadata.
podman run --publish 8888:8888 ghcr.io/diamondlightsource/bookshelf-template/interactive:latest
or
module load bookshelf/bookshelf-template/latest
bookshelf-template-interactive
- Go to https://jupyterhub.diamond.ac.uk/hub/home
- 'Start My Server' with
CONTAINER_IMAGE=ghcr.io/diamondlightsource/bookshelf-template/interactive:latest
podman run --volume .:/outputs --volume .:/inputs --security-opt=label=type:container_runtime_t ghcr.io/diamondlightsource/bookshelf-template/processing:latest
or
module load bookshelf/bookshelf-template/latest
bookshelf-template-processing