spacetelescope/docker-stacks

Name: docker-stacks

Owner: Space Telescope Science Institute

Description: Opinionated stacks of ready-to-run Jupyter applications in Docker.

Forked from: jupyter/docker-stacks

Created: 2018-02-05 14:35:37.0

Updated: 2018-02-05 14:35:39.0

Pushed: 2018-02-05 16:11:26.0

Homepage:

Size: 969

Language: Jupyter Notebook

GitHub Committers

UserMost Recent Commit# Commits

Other Committers

UserEmailMost Recent Commit# Commits

README

docker-stacks

Build Status Join the chat at https://gitter.im/jupyter/jupyter

Opinionated stacks of ready-to-run Jupyter applications in Docker.

Quick Start

If you're familiar with Docker, have it configured, and know exactly what you'd like to run, one of these commands should get you up and running:

n an ephemeral Jupyter Notebook server in a Docker container in the terminal foreground.
te that any work saved in the container will be lost when it is destroyed with this config.
i: pseudo-TTY+STDIN open.
m: remove the container on exit.
: publish port to the host
er run -ti --rm -p 8888:8888 jupyter/<your desired stack>:<git-sha-tag>

n a Jupyter Notebook server in a Docker container in the terminal foreground.
y files written to ~/work in the container will be saved to the current working
rectory on the host.
er run -ti --rm -p 8888:8888 -v "$PWD":/home/jovyan/work jupyter/<your desired stack>:<git-sha-tag>

n an ephemeral Jupyter Notebook server in a Docker container in the background.
te that any work saved in the container will be lost when it is destroyed with this config.
: detach, run container in background.
: Publish all exposed ports to random ports
er run -d -P jupyter/<your desired stack>:<git-sha-tag>
Getting Started

If this is your first time using Docker or any of the Jupyter projects, do the following to get started.

  1. Install Docker on your host of choice.
  2. Open the README in one of the folders in this git repository.
  3. Follow the README for that stack.
Visual Overview

Here's a diagram of the FROM relationships between all of the images defined in this project:

Image inheritance diagram

Click here for a commented build history of each image, with references to tag/SHA values.

The following are quick-links to READMEs about each image and their Docker image tags on Docker Cloud:

Stacks, Tags, Versioning, and Progress

Starting with git commit SHA 9bd33dcc8688:

Other Tips and Known Issues
Maintainer Workflow

To build new images on Docker Cloud and publish them to the Docker Hub registry, do the following:

  1. Make sure Travis is green for a PR.
  2. Merge the PR.
  3. Monitor the Docker Cloud build status for each of the stacks, starting with jupyter/base-notebook and ending with jupyter/all-spark-notebook.
    • See the stack hierarchy diagram for the current, complete build order.
  4. Manually click the retry button next to any build that fails to resume that build and any dependent builds.
  5. Avoid merging another PR to master until all outstanding builds complete.
    • There's no way at present to propagate the git SHA to build through the Docker Cloud build trigger API. Every build trigger works off of master HEAD.

When there's a security fix in the Ubuntu base image, do the following in place of the last command:

Update the ubuntu:16.04 SHA in the most-base images (e.g., base-notebook). Submit it as a regular PR and go through the build process. Expect the build to take a while to complete: every image layer will rebuild.

When there's a new stack definition, do the following before merging the PR with the new stack:

  1. Ensure the PR includes an update to the stack overview diagram in the top-level README.
    • The source of the diagram is included in the alt-text of the image. Visit that URL to make edits.
  2. Ensure the PR updates the Makefile which is used to build the stacks in order on Travis CI.
  3. Create a new repoistory in the jupyter org on Docker Cloud named after the stack folder in the git repo.
  4. Grant the stacks team permission to write to the repo.
  5. Click Builds and then Configure Automated Builds for the repository.
  6. Select jupyter/docker-stacks as the source repository.
  7. Choose Build on Docker Cloud's infrastructure using a Small node unless you have reason to believe a bigger host is required.
  8. Update the Build Context in the default build rule to be /<name-of-the-stack>.
  9. Toggle Autobuild to disabled unless the stack is a new root stack (e.g., like jupyter/base-notebook).
  10. If the new stack depends on the build of another stack in the hierarchy:
    1. Hit Save and then click Configure Automated Builds.
    2. At the very bottom, add a build trigger named Stack hierarchy trigger.
    3. Copy the build trigger URL.
    4. Visit the parent repository Builds page and click Configure Automated Builds.
    5. Add the URL you copied to the NEXT_BUILD_TRIGGERS environment variable comma separated list of URLs, creating that environment variable if it does not already exist.
    6. Hit Save.
  11. If the new stack should trigger other dependent builds:
    1. Add an environment variable named NEXT_BUILD_TRIGGERS.
    2. Copy the build trigger URLs from the dependent builds into the NEXT_BUILD_TRIGGERS comma separated list of URLs.
    3. Hit Save.
  12. Adjust other NEXT_BUILD_TRIGGERS values as needed so that the build order matches that in the stack hierarchy diagram.

When there's a new maintainer, do the following:

  1. Visit https://cloud.docker.com/app/jupyter/team/stacks/users
  2. Add the new maintainer user name.

If automated builds have got you down, do the following:

  1. Clone this repository.
  2. Check out the git SHA you want to build and publish.
  3. docker login with your Docker Hub/Cloud credentials.
  4. Run make retry/release-all.

When make retry/release-all successfully pushes the last of its images to Docker Hub (currently jupyter/all-spark-notebook), Docker Hub invokes the webhook which updates the Docker build history wiki page.


This work is supported by the National Institutes of Health's National Center for Advancing Translational Sciences, Grant Number U24TR002306. This work is solely the responsibility of the creators and does not necessarily represent the official views of the National Institutes of Health.