Add Dockerfile and build system for Jupyter image

Created docker/ directory with:
- Dockerfile.jupyter: Extends mcp-forge/python:3.12 with ipykernel 6.29.0
- build-images.sh: Build script with testing
- README.md: Complete documentation and usage instructions

Image Details:
- Base: mcp-forge/python:3.12 (python:3.12-slim)
- Size: 196 MB (~73 MB added for ipykernel + dependencies)
- Includes: ipykernel, jupyter-client, pyzmq, ipython, debugpy, etc.
- Version: 6.29.0 (matches host jupyter-client compatibility)

Build tested and verified:
✓ ipykernel imports correctly (6.29.0)
✓ kernel launcher works
✓ Image ready for use

Next: Update config and run integration tests
This commit is contained in:
Hans Aschauer 2026-02-07 08:32:06 +01:00
parent 8e49c23d36
commit 35e2c3e983
3 changed files with 223 additions and 0 deletions

30
docker/Dockerfile.jupyter Normal file
View file

@ -0,0 +1,30 @@
# Jupyter Kernel Image for MCP-Forge
#
# This image provides a Python environment with ipykernel for stateful
# execution via Jupyter protocol. It runs inside containers managed by
# MCP-Forge and communicates with the host via ZMQ.
#
# Base: mcp-forge/python:3.12 (which is python:3.12-slim)
# Adds: ipykernel for Jupyter kernel functionality
FROM mcp-forge/python:3.12
LABEL maintainer="MCP-Forge"
LABEL description="Python 3.12 with ipykernel for stateful execution"
LABEL version="1.0"
# Install ipykernel
# Using --no-cache-dir to keep image size small
RUN pip install --no-cache-dir \
ipykernel==6.29.0 \
&& python -m ipykernel install --user
# Set working directory
WORKDIR /workspace
# The container will be run with:
# - Host networking (for ZMQ communication)
# - Mounted connection file
# - Command: python -m ipykernel_launcher -f /tmp/kernel-{id}.json
#
# No ENTRYPOINT or CMD needed - command specified at runtime