#!/usr/bin/env bash # Build a singleuser image for JupyterHub from a given stack # Usage: # ./build-singleuser jupyter/scipy-notebook my-singleuser-image set -e V="0.2.0" # get dockerspawner if [[ ! -d dockerspawner ]]; then tgz="dockerspawner.tar.gz" wget -N https://github.com/jupyter/dockerspawner/archive/$V.tar.gz -O $tgz echo "8af14608ad30df4dfcced7c7be508d336d485d9c31af965dc84c5e882e19dfe4 *$tgz" | shasum -a 256 -c - || (echo "shasum mismatch $(shasum -a 256 $tgz)" && exit -1) tar -xzf $tgz mv dockerspawner-$V dockerspawner fi base="$1" name="$2" if [[ -z "$base" || -z "$name" ]]; then echo "Usage: build-singleuser [base image] [destination image]" >&2 exit 1 fi echo "building $name from $base" singleuser=dockerspawner/singleuser # copy single-user stack sed -i "s@^FROM.*\$@FROM $base@" "$singleuser/Dockerfile" docker build -t "$name" "$singleuser" echo "built $name"