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 Python environment is that of the Pangeo docker stack base-image. Pangeo docker stack is a popular curated docker stack for earth data analysis.

The base image has the following support:

  • Python + JupyterLab with mamba handling package installation and 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 customizing 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.

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.↩︎