From 651ca94e612268a9d35599a11d5b31d6e7e328d2 Mon Sep 17 00:00:00 2001
From: TYLER CARAZA-HARTER <tharter@cs544-tharter.cs.wisc.edu>
Date: Thu, 13 Feb 2025 13:30:46 -0600
Subject: [PATCH] starter image

---
 lec/11-threads/Dockerfile       |  14 +++++
 lec/11-threads/requirements.txt | 107 ++++++++++++++++++++++++++++++++
 2 files changed, 121 insertions(+)
 create mode 100644 lec/11-threads/Dockerfile
 create mode 100644 lec/11-threads/requirements.txt

diff --git a/lec/11-threads/Dockerfile b/lec/11-threads/Dockerfile
new file mode 100644
index 0000000..ac39d0f
--- /dev/null
+++ b/lec/11-threads/Dockerfile
@@ -0,0 +1,14 @@
+FROM ubuntu:24.04
+RUN apt-get update && apt-get install -y python3 python3-pip curl iproute2 wget unzip software-properties-common
+RUN add-apt-repository -y ppa:deadsnakes/ppa && apt-get update && apt-get install -y python3.13-nogil python3.13-dev libffi-dev
+
+RUN curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
+RUN python3.13-nogil get-pip.py
+
+COPY requirements.txt /tmp/requirements.txt
+RUN python3.13 -m pip install -r /tmp/requirements.txt --break-system-packages
+RUN python3.13-nogil -m pip install ipykernel
+RUN python3.13-nogil -m ipykernel install --user --name python3.13-nogil --display-name "Python 3.13-nogil"
+
+# JupyterLab needs GIL, but kernel does not
+CMD ["python3.13", "-m", "jupyterlab", "--no-browser", "--ip=0.0.0.0", "--port=300", "--allow-root", "--NotebookApp.token=''"]
diff --git a/lec/11-threads/requirements.txt b/lec/11-threads/requirements.txt
new file mode 100644
index 0000000..ddd76b9
--- /dev/null
+++ b/lec/11-threads/requirements.txt
@@ -0,0 +1,107 @@
+anyio==4.8.0
+argon2-cffi==23.1.0
+argon2-cffi-bindings==21.2.0
+arrow==1.3.0
+asttokens==3.0.0
+async-lru==2.0.4
+attrs==25.1.0
+babel==2.17.0
+beautifulsoup4==4.13.3
+bleach==6.2.0
+blinker==1.7.0
+certifi==2025.1.31
+cffi==1.17.1
+charset-normalizer==3.4.1
+comm==0.2.2
+cryptography==41.0.7
+dbus-python==1.3.2
+debugpy==1.8.12
+decorator==5.1.1
+defusedxml==0.7.1
+distro==1.9.0
+distro-info==1.7+build1
+executing==2.2.0
+fastjsonschema==2.21.1
+fqdn==1.5.1
+h11==0.14.0
+httpcore==1.0.7
+httplib2==0.20.4
+httpx==0.28.1
+idna==3.10
+ipykernel==6.29.5
+ipython==8.32.0
+isoduration==20.11.0
+jedi==0.19.2
+Jinja2==3.1.5
+json5==0.10.0
+jsonpointer==3.0.0
+jsonschema==4.23.0
+jsonschema-specifications==2024.10.1
+jupyter-events==0.12.0
+jupyter-lsp==2.2.5
+jupyter_client==8.6.3
+jupyter_core==5.7.2
+jupyter_server==2.15.0
+jupyter_server_terminals==0.5.3
+jupyterlab==4.3.5
+jupyterlab_pygments==0.3.0
+jupyterlab_server==2.27.3
+launchpadlib==1.11.0
+lazr.restfulclient==0.14.6
+lazr.uri==1.0.6
+MarkupSafe==3.0.2
+matplotlib-inline==0.1.7
+mistune==3.1.1
+nbclient==0.10.2
+nbconvert==7.16.6
+nbformat==5.10.4
+nest-asyncio==1.6.0
+notebook_shim==0.2.4
+oauthlib==3.2.2
+overrides==7.7.0
+packaging==24.2
+pandocfilters==1.5.1
+parso==0.8.4
+pexpect==4.9.0
+platformdirs==4.3.6
+prometheus_client==0.21.1
+prompt_toolkit==3.0.50
+psutil==6.1.1
+ptyprocess==0.7.0
+pure_eval==0.2.3
+pycparser==2.22
+Pygments==2.19.1
+PyGObject==3.48.2
+PyJWT==2.7.0
+pyparsing==3.1.1
+python-apt==2.7.7+ubuntu4
+python-dateutil==2.9.0.post0
+python-json-logger==3.2.1
+PyYAML==6.0.2
+pyzmq==26.2.1
+referencing==0.36.2
+requests==2.32.3
+rfc3339-validator==0.1.4
+rfc3986-validator==0.1.1
+rpds-py==0.22.3
+Send2Trash==1.8.3
+setuptools==68.1.2
+six==1.16.0
+sniffio==1.3.1
+soupsieve==2.6
+stack-data==0.6.3
+terminado==0.18.1
+tinycss2==1.4.0
+tornado==6.4.2
+traitlets==5.14.3
+types-python-dateutil==2.9.0.20241206
+typing_extensions==4.12.2
+unattended-upgrades==0.1
+uri-template==1.3.0
+urllib3==2.3.0
+wadllib==1.3.6
+wcwidth==0.2.13
+webcolors==24.11.1
+webencodings==0.5.1
+websocket-client==1.8.0
+wheel==0.42.0
-- 
GitLab