
Discover why we use Jupyter with Docker to run a notebook server and deploy on Heroku, and explore caveats of ephemeral containers and notebook persistence.
Set up a local Jupyter base by creating a workspace, installing a Python 3.8 virtual environment with pipenv, and launching the notebook server within a Docker container workflow with authentication.
Configure the Jupiter notebook server for local use by creating a password protected setup, generating a hashed password with Python, and pointing to a project root and config path.
Learn how to package jupyter notebooks for ephemeral docker containers by zipping notebooks into a tar.gz file, then unloading and loading them for reliable deployment.
Create a minimal dockerfile using the python 3.8-slim image, copy project contents, install dependencies with pip, and set an entry point script to produce a small, reusable container.
Explore dockerfile cmd and entrypoint concepts by examining entry point scripts, permissions, and work directories, testing docker container setup and how configuration paths influence execution.
Build and run a docker container by creating a Dockerfile, tagging the image, and using docker run to launch a notebook server.
Learn to use the Hiroku CLI to create, push, and release a Jupyter Docker app on Heroku. The guide covers login, push, web process deployment, and opening the notebook server.
Discover how to upgrade a notebook environment with bonus installs using a dockerfile, adding numpy, pandas, OpenCV, TensorFlow, and scikit-learn for machine learning and data science projects.
Explore how Docker and Jupiter enable complete control over a notebook server, compare with Google CoLab, and consider persistent volume for production with Hiroku.
Learn to create a Python Jupyter Notebook Server with Docker & Heroku. This series builds gives you a step-by-step reference to deploy an interactive notebook to allow your projects to be more literal while making it easier for non-technicals to run your code.
Jupyter is a tool for running interactive notebooks; basically add Python with Markdown and you've got Jupyter. if you haven't used it before, I recommend you do.
Docker is a tool that gives us control over our application's OS environment. Think of it like a recipe for your OS that you can share almost anywhere. In this one, we'll be covering deploying this project to Heroku but using Docker means we can deploy this nearly anywhere.
In this series, I'm going to show you how to deploy a Jupyter Notebook server on Heroku using Docker step-by-step.
The big caveat
Jupyter has the ability to create new notebooks and they will 100% save on your deployed docker-based Jupyter server... but they will disappear as soon as you deploy a new version. That's because containers, by their very nature, are ephemeral by default.
This caveat doesn't mean we shouldn't do this... it just means it is a HUGE consideration when using this guide over something like Google Colab.