mirror of
https://github.com/jupyter/docker-stacks.git
synced 2025-10-09 19:12:59 +00:00
Parameterize healthcheck by internal port (#1859)
* Use the JUPYTER_PORT environment variable to configure server port - Remove port setting in jupyter_server_config.py - Declare the $JUPYTER_PORT env on the base Dockerfile - Use it for HEALTHCHECK * Add test case for JUPYTER_PORT env variable * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Update documentation * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Update style * Better wording * Better wording * Add test for custom internal port * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Parametrize internal port test case * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Try to fix test * Better tests Co-authored-by: Muhammad Aji Muharrom <ajimuharrom@uchicago.edu> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Ayaz Salikhov <mathbunnyru@users.noreply.github.com> Co-authored-by: Ayaz Salikhov <mathbunnyru@gmail.com>
This commit is contained in:

committed by
GitHub

parent
e014bb8ec5
commit
0d324bc0b3
@@ -78,3 +78,39 @@ def test_unsigned_ssl(
|
||||
assert "ERROR" not in logs
|
||||
warnings = TrackedContainer.get_warnings(logs)
|
||||
assert not warnings
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"env",
|
||||
[
|
||||
{},
|
||||
{"JUPYTER_PORT": 1234, "DOCKER_STACKS_JUPYTER_CMD": "lab"},
|
||||
{"JUPYTER_PORT": 2345, "DOCKER_STACKS_JUPYTER_CMD": "notebook"},
|
||||
{"JUPYTER_PORT": 3456, "DOCKER_STACKS_JUPYTER_CMD": "server"},
|
||||
{"JUPYTER_PORT": 4567, "DOCKER_STACKS_JUPYTER_CMD": "nbclassic"},
|
||||
{"JUPYTER_PORT": 5678, "RESTARTABLE": "yes"},
|
||||
{"JUPYTER_PORT": 6789},
|
||||
{"JUPYTER_PORT": 7890, "DOCKER_STACKS_JUPYTER_CMD": "notebook"},
|
||||
],
|
||||
)
|
||||
def test_custom_internal_port(
|
||||
container: TrackedContainer,
|
||||
http_client: requests.Session,
|
||||
env: dict[str, str],
|
||||
) -> None:
|
||||
"""Container should be accessible from the host
|
||||
when using custom internal port"""
|
||||
host_port = find_free_port()
|
||||
internal_port = env.get("JUPYTER_PORT", 8888)
|
||||
running_container = container.run_detached(
|
||||
command=["start-notebook.sh", "--NotebookApp.token=''"],
|
||||
environment=env,
|
||||
ports={internal_port: host_port},
|
||||
)
|
||||
resp = http_client.get(f"http://localhost:{host_port}")
|
||||
resp.raise_for_status()
|
||||
logs = running_container.logs().decode("utf-8")
|
||||
LOGGER.debug(logs)
|
||||
assert "ERROR" not in logs
|
||||
warnings = TrackedContainer.get_warnings(logs)
|
||||
assert not warnings
|
||||
|
Reference in New Issue
Block a user