Default to JupyterLab

Introduce a new `JUPYTER_CMD` option
This commit is contained in:
romainx
2022-01-19 12:15:54 +01:00
parent f162376112
commit 1d8d7df242
4 changed files with 18 additions and 18 deletions

View File

@@ -128,7 +128,6 @@ cont-rm-all: ## remove all containers
dev/%: DARGS?=-e JUPYTER_ENABLE_LAB=yes
dev/%: PORT?=8888
dev/%: ## run a foreground container for a stack
docker run -it --rm -p $(PORT):8888 $(DARGS) $(OWNER)/$(notdir $@)

View File

@@ -4,6 +4,10 @@
set -e
# The Jupyter command to launch
# JupyterLab by default
JUPYTER_CMD="${JUPYTER_CMD:=lab}"
if [[ -n "${JUPYTERHUB_API_TOKEN}" ]]; then
echo "WARNING: using start-singleuser.sh instead of start-notebook.sh to start a server associated with JupyterHub."
exec /usr/local/bin/start-singleuser.sh "$@"
@@ -15,10 +19,8 @@ if [[ "${RESTARTABLE}" == "yes" ]]; then
fi
if [[ -n "${JUPYTER_ENABLE_LAB}" ]]; then
# shellcheck disable=SC1091,SC2086
exec /usr/local/bin/start.sh ${wrapper} jupyter lab ${NOTEBOOK_ARGS} "$@"
else
echo "WARNING: Jupyter Notebook deprecation notice https://github.com/jupyter/docker-stacks#jupyter-notebook-deprecation-notice."
# shellcheck disable=SC1091,SC2086
exec /usr/local/bin/start.sh ${wrapper} jupyter notebook ${NOTEBOOK_ARGS} "$@"
fi
# shellcheck disable=SC1091,SC2086
exec /usr/local/bin/start.sh ${wrapper} jupyter ${JUPYTER_CMD} ${NOTEBOOK_ARGS} "$@"

View File

@@ -23,8 +23,7 @@ def test_cli_args(container: TrackedContainer, http_client: requests.Session) ->
warnings = [
warning for warning in logs.split("\n") if warning.startswith("WARNING")
]
assert len(warnings) == 1
assert warnings[0].startswith("WARNING: Jupyter Notebook deprecation notice")
assert not warnings
assert "login_submit" not in resp.text
@@ -49,8 +48,7 @@ def test_unsigned_ssl(
warnings = [
warning for warning in logs.split("\n") if warning.startswith("WARNING")
]
assert len(warnings) == 1
assert warnings[0].startswith("WARNING: Jupyter Notebook deprecation notice")
assert not warnings
def test_uid_change(container: TrackedContainer) -> None:

View File

@@ -11,10 +11,14 @@ LOGGER = logging.getLogger(__name__)
@pytest.mark.parametrize(
"env,expected_server",
"env,expected_server,expected_warning",
[
(["JUPYTER_ENABLE_LAB=yes"], "lab"),
(None, "notebook"),
(["JUPYTER_ENABLE_LAB=yes"], "lab", True),
(None, "lab", False),
(["JUPYTER_CMD=lab"], "lab", False),
(["JUPYTER_CMD=notebook"], "notebook", False),
(["JUPYTER_CMD=server"], "server", False),
(["JUPYTER_CMD=nbclassic"], "nbclassic", False),
],
)
def test_start_notebook(
@@ -22,6 +26,7 @@ def test_start_notebook(
http_client: requests.Session,
env,
expected_server: str,
expected_warning: bool,
) -> None:
"""Test the notebook start-notebook script"""
LOGGER.info(
@@ -36,7 +41,7 @@ def test_start_notebook(
logs = c.logs(stdout=True).decode("utf-8")
LOGGER.debug(logs)
assert "ERROR" not in logs
if expected_server != "notebook":
if not expected_warning:
assert "WARNING" not in logs
else:
warnings = [
@@ -48,10 +53,6 @@ def test_start_notebook(
assert (
f"Executing the command: jupyter {expected_server}" in logs
), f"Not the expected command (jupyter {expected_server}) was launched"
# Checking warning messages
if not env:
msg = "WARNING: Jupyter Notebook deprecation notice"
assert msg in logs, f"Expected warning message {msg} not printed"
def test_tini_entrypoint(