Jupyterhub: URL перенаправления из `/ hub / home` зависит от перезагрузки страницы - PullRequest
0 голосов
/ 22 февраля 2020

Я запускаю докеризированный JupyterHub v1.1.0b с ProfileSpawner / DockerSpawner и прокси-сервером traefik 2.0, и я сталкиваюсь со странным поведением:

Мой контейнер jupyterhub имеет свой маршрут с метками docker, установленными в

"traefik.http.routers.jupyterhub.rule = Path (/) || PathPrefix (/hub)"

порожденные docker контейнеры имеют их маршруты установлены на

"traefik.http.routers.jupyter- {username} .rule": "PathPrefix (/user/{username})"

Когда у меня есть работающий сервер, и я останавливаю его со страницы /hub/home, после чего снова запускаю, нажимая кнопку запуска моего сервера, он перенаправляет меня на /user/{username}, что приводит к 404, так как прокси не имеет правила PathPrefix (/user/{username}), потому что Сервер не работает.

Я не могу открыть путь PathPrefix (/user) на хабе, потому что при порождении сервера будет перенаправление l oop между /user/{username} и /hub/user/{username}, так как хаб пытается прокси новый порожденный docker, но перенаправленный на /hub/user/{username} (в соответствии со схемой URL jupyterhub сделайте страницу c). Кроме того, эксперименты с приоритетами маршрутов в traefik не дали никакого успеха.

НО я нашел обходные пути для этого:

После остановки моего сервера журналы показывают:

Юпитер-хаб | [I 2020-02-22 17: 03: 44.354 JupyterHub dockerspawner: 1107] Остановка контейнера jupyter-ays (id: 38a6b3d)

jupyter-hub | [I 2020-02-22 17: 03: 44.354 Докер JupyterHub: 815] Удаление контейнера 38a6b3d43e3afba83801d84cf47a664fb5c123cad8218af6ca89416ab9e8dbf0

jupyter-hub | [D 2020-02-22 17: 03: 45.259 JupyterHub user: 767] Удаление oauth-клиента jupyterhub-user-ays

jupyter-hub | [D 2020-02-22 17: 03: 45.280 Пользователь JupyterHub: 770] Законченная остановка ays

jupyter-hub | [I 2020-02-22 17: 03: 45.296 База JupyterHub: 1055] Пользовательскому ай-серверу потребовалось 0,945 секунды для остановки

jupyter-hub | [I 2020-02-22 17: 03: 45.297 Журнал JupyterHub: 174] 204 УДАЛИТЬ / hub / api / users / ays / server (ays@192.168.115.1) 953.74ms

На этом этапе я бы будет перенаправлен на /user/{username}, что приведет к значению 404, поскольку в методе pages.py HomeHandler.get() выбран неверный URL, похоже, что user.active все еще имеет значение True.

НО после перезагрузки / hub / home логи показывают:

jupyter-hub | [D 2020-02-22 17: 03: 56.147 Пользователь JupyterHub: 242] Создание класса ProfilesSpawner для ays:

jupyter-hub | [I 2020-02-22 17: 03: 56.164 Журнал JupyterHub: 174] 200 GET / hub / home (ays@192.168.115.1) 19,77 мс

Теперь настройки, кажется, изменились, и когда я сейчас нажмите «Запустить мой сервер», и он направит меня на страницу создателя, как я и ожидал.

Итак, вопросы:

Какие варианты я должен не использовать обходной путь, так как это не совсем интуитивно для пользователей?

и

Как я могу воссоздать user.spawner или перезагрузить / концентратор / дом, чтобы он был правильно перенаправлен в / hub / spawn вместо /user/xxx? ​​

и

Является ли это предназначением или это необычный случай использования, от которого зависит URL-адрес перенаправления, перезагружать ли я страницу /hub/home или нет?

...