diff --git a/server-ce/Dockerfile-base b/server-ce/Dockerfile-base index 9c435f4564..c38dd498e2 100644 --- a/server-ce/Dockerfile-base +++ b/server-ce/Dockerfile-base @@ -74,7 +74,8 @@ RUN mkdir -p /opt/quarto-extensions \ # Quarto runs ```{python}``` cells through a Jupyter kernel. It uses the system # python3 it detected (/usr/bin/python3), so Jupyter must be installed there. # We install only the headless execution stack Quarto needs (jupyter-client + -# nbclient/nbformat + the ipykernel kernel), not the notebook/lab servers, and +# nbclient/nbformat + the ipykernel kernel + pyyaml, which Quarto's own +# /opt/quarto/share/jupyter wrapper imports), not the notebook/lab servers, and # register a system-wide "python3" kernelspec under /usr/local/share/jupyter so # it is discoverable regardless of HOME/XDG. Noble's Python is externally # managed (PEP 668), hence --break-system-packages in this controlled image. @@ -83,7 +84,7 @@ RUN mkdir -p /opt/quarto-extensions \ RUN apt-get update \ && apt-get install -y python3-pip \ && pip3 install --no-cache-dir --break-system-packages \ - jupyter-core jupyter-client nbclient nbformat ipykernel \ + jupyter-core jupyter-client nbclient nbformat ipykernel pyyaml \ && python3 -m ipykernel install --prefix /usr/local --name python3 --display-name "Python 3" \ # Bundle the common scientific-Python stack so most decks "just work" without # any per-project install. matplotlib renders headless (Agg) automatically.