Skip to content

Commit 4aeaeef

Browse files
committed
wip
1 parent e6edde7 commit 4aeaeef

File tree

4 files changed

+22
-23
lines changed

4 files changed

+22
-23
lines changed

template/Dockerfile

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ ENV R_HOME=/opt/R/${R_VERSION} \
2020

2121
# Install Jupyter
2222
COPY ./requirements.txt requirements.txt
23-
RUN pip install --no-cache-dir -r requirements.txt && ipython kernel install --name "python3" --user
23+
RUN pip install --no-cache-dir -r requirements.txt && ipython kernel install --name "python3"
2424

2525
# R Kernel
2626
RUN curl -O https://cdn.rstudio.com/r/debian-12/pkgs/r-${R_VERSION}_1_amd64.deb && sudo apt-get update && sudo apt-get install -y ./r-${R_VERSION}_1_amd64.deb && ln -s ${R_HOME}/bin/R /usr/bin/R
@@ -36,7 +36,8 @@ RUN ijsinstall --install=global
3636
COPY --from=denoland/deno:bin-2.0.4 /deno /usr/bin/deno
3737
RUN chmod +x /usr/bin/deno
3838
RUN deno jupyter --unstable --install
39-
COPY ./deno.json $HOME/.local/share/jupyter/kernels/deno/kernel.json
39+
RUN mkdir -p /usr/local/share/jupyter/kernels/deno
40+
COPY ./kernel/deno.json /usr/local/share/jupyter/kernels/deno/kernel.json
4041

4142
# Bash Kernel
4243
RUN pip install bash_kernel

template/server/main.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,14 +34,14 @@ async def lifespan(app: FastAPI):
3434
global client
3535
client = httpx.AsyncClient()
3636

37-
with open("/home/user/.jupyter/kernel_id") as file:
37+
with open("/root/.jupyter/kernel_id") as file:
3838
default_context_id = file.read().strip()
3939

4040
default_ws = ContextWebSocket(
4141
default_context_id,
4242
str(uuid.uuid4()),
4343
"python",
44-
"/home/user",
44+
"/root",
4545
)
4646
default_websockets["python"] = default_context_id
4747
websockets["default"] = default_ws

template/start-up.sh

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,22 +13,22 @@ function start_jupyter_server() {
1313
response=$(curl -s -o /dev/null -w "%{http_code}" "http://localhost:8888/api/status")
1414
done
1515

16-
response=$(curl -s -X POST "localhost:8888/api/sessions" -H "Content-Type: application/json" -d '{"path": "/home/user", "kernel": {"name": "python3"}, "type": "notebook", "name": "default"}')
16+
response=$(curl -s -X POST "localhost:8888/api/sessions" -H "Content-Type: application/json" -d '{"path": "/root", "kernel": {"name": "python3"}, "type": "notebook", "name": "default"}')
1717
status=$(echo "${response}" | jq -r '.kernel.execution_state')
1818
if [[ ${status} != "starting" ]]; then
1919
echo "Error creating kernel: ${response} ${status}"
2020
exit 1
2121
fi
2222

23-
mkdir -p /home/user/.jupyter
23+
mkdir -p /root/.jupyter
2424
kernel_id=$(echo "${response}" | jq -r '.kernel.id')
25-
echo "${kernel_id}" > /home/user/.jupyter/kernel_id
26-
echo "${response}" > /home/user/.jupyter/.session_info
25+
echo "${kernel_id}" > /root/.jupyter/kernel_id
26+
echo "${response}" > /root/.jupyter/.session_info
2727

28-
cd /home/user/.server/
29-
/home/user/.server/.venv/bin/uvicorn main:app --host 0.0.0.0 --port 49999 --workers 1 --no-access-log --no-use-colors >> /home/user/uvicorn_server.log 2>&1
28+
cd /root/.server/
29+
/root/.server/.venv/bin/uvicorn main:app --host 0.0.0.0 --port 49999 --workers 1 --no-access-log --no-use-colors
3030
}
3131

3232
echo "Starting Code Interpreter server..."
3333
start_jupyter_server &
34-
MATPLOTLIBRC=/home/user/.config/matplotlib/.matplotlibrc jupyter server --IdentityProvider.token="" >> /home/user/jupyter_server.log 2>&1
34+
MATPLOTLIBRC=/root/.config/matplotlib/.matplotlibrc jupyter server --IdentityProvider.token=""

template/test.Dockerfile

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
FROM python:3.10.14
22

3-
# Create a non-root user
4-
RUN useradd -m -s /bin/bash user
5-
ENV HOME=/home/user
3+
ENV HOME=/root
64

75
ENV JAVA_HOME=/opt/java/openjdk
86
COPY --from=eclipse-temurin:11-jdk $JAVA_HOME $JAVA_HOME
@@ -20,7 +18,7 @@ ENV PIP_DEFAULT_TIMEOUT=100 \
2018

2119
# Install Jupyter
2220
COPY ./template/requirements.txt requirements.txt
23-
RUN pip install --no-cache-dir -r requirements.txt && ipython kernel install --name "python3" --user
21+
RUN pip install --no-cache-dir -r requirements.txt && ipython kernel install --name "python3"
2422

2523
# Javascript Kernel
2624
RUN npm install -g node-gyp
@@ -30,8 +28,14 @@ RUN ijsinstall --install=global
3028
# Deno Kernel
3129
COPY --from=denoland/deno:bin-2.0.4 /deno /usr/bin/deno
3230
RUN chmod +x /usr/bin/deno
33-
RUN deno jupyter --unstable --install
34-
COPY ./template/deno.json $HOME/.local/share/jupyter/kernels/deno/kernel.json
31+
RUN deno jupyter --unstable --install && \
32+
mkdir -p /usr/local/share/jupyter/kernels/deno && \
33+
mv $HOME/.local/share/jupyter/kernels/deno/* /usr/local/share/jupyter/kernels/deno/ && \
34+
rmdir $HOME/.local/share/jupyter/kernels/deno
35+
# COPY ./template/kernel/deno.json /usr/local/share/jupyter/kernels/deno/kernel.json
36+
37+
# Copy non-root kernels
38+
COPY ./template/kernel/python3_user.json /usr/local/share/jupyter/kernels/python3_user/kernel.json
3539

3640
# Create separate virtual environment for server
3741
RUN python -m venv $SERVER_PATH/.venv
@@ -62,10 +66,4 @@ WORKDIR $HOME
6266
COPY ./chart_data_extractor ./chart_data_extractor
6367
RUN pip install -e ./chart_data_extractor
6468

65-
# Set ownership of all files to the user
66-
RUN chown -R user:user $HOME
67-
68-
# Switch to non-root user
69-
USER user
70-
7169
ENTRYPOINT $JUPYTER_CONFIG_PATH/start-up.sh

0 commit comments

Comments
 (0)