feat(jupyter): switch from pip3 to pipx for Jupyter install (#294)

pull/300/head
Muhammad Atif Ali 7 months ago committed by GitHub
parent 93c4fb3a8d
commit e11b19d33e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -7,14 +7,14 @@ printf "$${BOLD}Installing jupyter-notebook!\n"
# check if jupyter-notebook is installed # check if jupyter-notebook is installed
if ! command -v jupyter-notebook > /dev/null 2>&1; then if ! command -v jupyter-notebook > /dev/null 2>&1; then
# install jupyter-notebook # install jupyter-notebook
# check if python3 pip is installed # check if pipx is installed
if ! command -v pip3 > /dev/null 2>&1; then if ! command -v pipx > /dev/null 2>&1; then
echo "pip3 is not installed" echo "pipx is not installed"
echo "Please install pip3 in your Dockerfile/VM image before running this script" echo "Please install pipx in your Dockerfile/VM image before using this module"
exit 1 exit 1
fi fi
# install jupyter-notebook # install jupyter notebook
pip3 install --upgrade --no-cache-dir --no-warn-script-location jupyter pipx install -q notebook
echo "🥳 jupyter-notebook has been installed\n\n" echo "🥳 jupyter-notebook has been installed\n\n"
else else
echo "🥳 jupyter-notebook is already installed\n\n" echo "🥳 jupyter-notebook is already installed\n\n"
@ -22,4 +22,4 @@ fi
echo "👷 Starting jupyter-notebook in background..." echo "👷 Starting jupyter-notebook in background..."
echo "check logs at ${LOG_PATH}" echo "check logs at ${LOG_PATH}"
$HOME/.local/bin/jupyter notebook --NotebookApp.ip='0.0.0.0' --ServerApp.port=${PORT} --no-browser --ServerApp.token='' --ServerApp.password='' > ${LOG_PATH} 2>&1 & $HOME/.local/bin/jupyter-notebook --NotebookApp.ip='0.0.0.0' --ServerApp.port=${PORT} --no-browser --ServerApp.token='' --ServerApp.password='' > ${LOG_PATH} 2>&1 &

@ -22,7 +22,7 @@ const executeScriptInContainerWithPip = async (
}> => { }> => {
const instance = findResourceInstance(state, "coder_script"); const instance = findResourceInstance(state, "coder_script");
const id = await runContainer(image); const id = await runContainer(image);
const respPip = await execContainer(id, [shell, "-c", "apk add py3-pip"]); const respPipx = await execContainer(id, [shell, "-c", "apk add pipx"]);
const resp = await execContainer(id, [shell, "-c", instance.script]); const resp = await execContainer(id, [shell, "-c", instance.script]);
const stdout = resp.stdout.trim().split("\n"); const stdout = resp.stdout.trim().split("\n");
const stderr = resp.stderr.trim().split("\n"); const stderr = resp.stderr.trim().split("\n");
@ -40,7 +40,7 @@ describe("jupyterlab", async () => {
agent_id: "foo", agent_id: "foo",
}); });
it("fails without pip3", async () => { it("fails without pipx", async () => {
const state = await runTerraformApply(import.meta.dir, { const state = await runTerraformApply(import.meta.dir, {
agent_id: "foo", agent_id: "foo",
}); });
@ -48,14 +48,14 @@ describe("jupyterlab", async () => {
expect(output.exitCode).toBe(1); expect(output.exitCode).toBe(1);
expect(output.stdout).toEqual([ expect(output.stdout).toEqual([
"\u001B[0;1mInstalling jupyterlab!", "\u001B[0;1mInstalling jupyterlab!",
"pip3 is not installed", "pipx is not installed",
"Please install pip3 in your Dockerfile/VM image before running this script", "Please install pipx in your Dockerfile/VM image before running this script",
]); ]);
}); });
// TODO: Add faster test to run with pip3. // TODO: Add faster test to run with pipx.
// currently times out. // currently times out.
// it("runs with pip3", async () => { // it("runs with pipx", async () => {
// ... // ...
// const output = await executeScriptInContainerWithPip(state, "alpine"); // const output = await executeScriptInContainerWithPip(state, "alpine");
// ... // ...

@ -7,14 +7,14 @@ printf "$${BOLD}Installing jupyterlab!\n"
# check if jupyterlab is installed # check if jupyterlab is installed
if ! command -v jupyterlab > /dev/null 2>&1; then if ! command -v jupyterlab > /dev/null 2>&1; then
# install jupyterlab # install jupyterlab
# check if python3 pip is installed # check if pipx is installed
if ! command -v pip3 > /dev/null 2>&1; then if ! command -v pipx > /dev/null 2>&1; then
echo "pip3 is not installed" echo "pipx is not installed"
echo "Please install pip3 in your Dockerfile/VM image before running this script" echo "Please install pipx in your Dockerfile/VM image before running this script"
exit 1 exit 1
fi fi
# install jupyterlab # install jupyterlab
pip3 install --upgrade --no-cache-dir --no-warn-script-location jupyterlab pipx install -q jupyterlab
echo "🥳 jupyterlab has been installed\n\n" echo "🥳 jupyterlab has been installed\n\n"
else else
echo "🥳 jupyterlab is already installed\n\n" echo "🥳 jupyterlab is already installed\n\n"
@ -22,4 +22,4 @@ fi
echo "👷 Starting jupyterlab in background..." echo "👷 Starting jupyterlab in background..."
echo "check logs at ${LOG_PATH}" echo "check logs at ${LOG_PATH}"
$HOME/.local/bin/jupyter lab --ServerApp.ip='0.0.0.0' --ServerApp.port=${PORT} --no-browser --ServerApp.token='' --ServerApp.password='' > ${LOG_PATH} 2>&1 & $HOME/.local/bin/jupyter-lab --ServerApp.ip='0.0.0.0' --ServerApp.port=${PORT} --no-browser --ServerApp.token='' --ServerApp.password='' > ${LOG_PATH} 2>&1 &

Loading…
Cancel
Save