py-rocket-base documentation

Author
Affiliation

Eli Holmes

NOAA Fisheres

Introduction

DOIGitHub Release ghcr.io/nmfs-opensci/py-rocket-base:latest

The py-rocket-base image is a base image for JupyterHubs with Jupyter Lab, RStudio, Desktop, and VSCode UIs. What makes py-rocket-base unique, is that the RStudio UI (via /rstudio) is a R and RStudio environment installed with Rocker installation scripts1. Thus all the Rocker design choices and R/RStudio environment choices are in that UI. Properly setting up environments to work properly with spatial libraries and HPC libraries is tricky. py-rocket-base solves this problem (and the associated maintenance of installation scripts) by using Rocker installation scripts.

The base image has the following support:

  • Python + JupyterLab with mamba handling package installation and repo2docker (Pangeo) environment design
  • R + RStudio with the Rocker environment design and Rocker scripts and other functions included
  • Desktop UI for serving applications, including Java-based applications
  • VSCode UI
  • Quarto, Myst and Texlive installed with tlmgr for tex package management

Using the image

Include a Dockerfile in your repository with the following from line:

FROM ghcr.io/nmfs-opensci/py-rocket-base:latest

To extend the base image, see the documentation on using the base image. py-rocket-base includes directories called \pyrocket_scripts and \rocker_scripts that will help you do common tasks for extending scientific docker images. You do not have to use these scripts, but they can help you do standard installation tasks (and some tasks like properly setting up GDAL) require some experience. If you are familiar with writing Docker files, you can write your own code in your Docker file.

There is one exception and that is the installation of Desktop files. Properly adding Desktop applications to py-rocket-base requires the use of the \pyrocket_scripts/install-desktop.sh script. Setting up the start file (a script that runs after the user server is started) is also unique. See the documentation.

This work is part of a large effort: the NMFS Open Science docker stack.


  1. See the Developer section of the documentation for other approaches for installing R/RStudio and the design goals for py-rocket-base.↩︎