A VS Code extension that automatically runs Jupyter notebooks in Docker containers.
npm install
npm run compilePress F5 in VS Code to launch the extension in a new window, or manually run:
code --extensionDevelopmentPath="PATH_WHERE_CLONED" --verbose- Open
test-notebook.ipynbin the extension host window - The extension should auto-start and build the Docker container
- Try running cells — they should execute in the Docker container
From the Command Palette (Ctrl+Shift+P):
- Jupyter Docker: Rebuild Container — Rebuild the Docker image from scratch
- Jupyter Docker: Stop Container — Stop the running container
- Jupyter Docker: Select Kernel — Choose an available kernel
Settings in .vscode/settings.json or VS Code preferences:
jupyterDocker.autoStart(boolean, default: true) — Auto-start container when opening notebooksjupyterDocker.dockerfilePath(string, default: "Dockerfile") — Path to Dockerfile relative to workspace rootjupyterDocker.containerName(string, default: "jupyter-runtime") — Name for the Docker containerjupyterDocker.pythonPath(string, default: "/usr/local/bin/python3") — Python path inside container
src/
extension.ts — Extension entry point and command handlers
dockerManager.ts — Docker container/image management
kernelProvider.ts — Notebook controller and code execution
package.json — (in root now) Extension manifest
tsconfig.json — TypeScript configuration
- Check that a notebook is open (extension activates on
onNotebook:jupyter-notebook) - Open the Developer Tools (
Help → Toggle Developer Tools) and check the console for errors - Verify the
mainentry inpackage.jsonpoints to./src/out/extension.js
- Ensure Docker Desktop is running
- Check Docker socket accessibility on your system
- Try manually running
docker psin a terminal to verify Docker is working
- Verify the container is running: check Docker Desktop or run
docker ps - Open the Output panel and check the "Jupyter Docker Runtime" channel for logs
- Ensure the Dockerfile has all necessary Python packages installed
- Compile (watching):
npm run watch - Lint:
npm run lint - Package extension:
npm run package(requires @vscode/vsce)
- Requires Docker Desktop to be running
- Kernel helper script uses base64-encoded code for execution
- No support for kernel interruption yet
- Only Python 3 is supported in the default Dockerfile