Я запускаю докеризированный 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
или нет?