Skip to content

Commit 7c6f2bf

Browse files
committed
Added kube-notebook
1 parent 9ab6ab2 commit 7c6f2bf

File tree

3 files changed

+74
-0
lines changed

3 files changed

+74
-0
lines changed

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
debug-custom-actions.sh
2+
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
ARG BASE_IMAGE=quay.io/jupyter/minimal-notebook:2025-07-07
2+
3+
FROM ${BASE_IMAGE}
4+
5+
# Switch to root for linux updates and installs
6+
USER root
7+
WORKDIR /root
8+
9+
# Install rclone and kubectl
10+
RUN curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"\
11+
&& install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl \
12+
&& curl -O https://rclone.org/install.sh \
13+
&& bash /root/install.sh \
14+
&& rm -f /root/install.sh \
15+
&& curl -fsSL https://code-server.dev/install.sh | sh
16+
17+
# Install Jupyter Desktop dependencies, zip and vim, Globus dependencies
18+
RUN apt-get -y update \
19+
&& apt-get -y install \
20+
dbus-x11 \
21+
xfce4 \
22+
xfce4-panel \
23+
xfce4-session \
24+
xfce4-settings \
25+
xorg \
26+
xubuntu-icon-theme \
27+
tigervnc-standalone-server \
28+
tigervnc-xorg-extension \
29+
zip \
30+
vim \
31+
tk \
32+
tcllib \
33+
&& apt clean \
34+
&& rm -rf /var/lib/apt/lists/* \
35+
&& fix-permissions "${CONDA_DIR}" \
36+
&& fix-permissions "/home/${NB_USER}"
37+
38+
WORKDIR /opt
39+
40+
# Install Google Chrome
41+
RUN curl -O "https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb" \
42+
&& dpkg -i google-chrome-stable_current_amd64.deb || true \
43+
&& apt-get install -y -f \
44+
&& rm /opt/google-chrome-stable_current_amd64.deb
45+
46+
# Install GlobusConnectPersonal
47+
RUN wget https://downloads.globus.org/globus-connect-personal/linux/stable/globusconnectpersonal-latest.tgz \
48+
&& tar xzf globusconnectpersonal-latest.tgz \
49+
&& rm globusconnectpersonal-latest.tgz
50+
51+
# Switch back to notebook user
52+
USER $NB_USER
53+
WORKDIR /home/${NB_USER}
54+
55+
# Install Jupyter Desktop
56+
RUN /opt/conda/bin/conda install -y -q -c manics websockify
57+
RUN pip install jupyter-remote-desktop-proxy jupyter-codeserver-proxy
58+
RUN pip install nbgitpuller
59+
60+
ENV PATH=/opt/globusconnectpersonal-3.2.7:$PATH
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
# kube-notebook
2+
A container image for a Jupyter Notebook with kubectl installed for interacting with kubernetes
3+
4+
## Software Inluded
5+
- rclone
6+
- kubectl
7+
- Jupyter Desktop
8+
- Code Server (VS Code)
9+
- Globus Connect Personal
10+
- NB Conda Kernels
11+
12+
This image is based on the [Jupyter Docker Stacks minimal-notebook](https://github.com/jupyter/docker-stacks/tree/main/images/minimal-notebook) image from Quay.io (`quay.io/jupyter/minimal-notebook`).

0 commit comments

Comments
 (0)