ryanlovett / imagespawner

DockerSpawner with image selection
BSD 3-Clause "New" or "Revised" License
15 stars 16 forks source link

Converting Docker Spawner config to Image Spawner config #5

Open tjesser-ucdavis-edu opened 6 years ago

tjesser-ucdavis-edu commented 6 years ago

I have been trying to use imagespawner unsuccessfully. I have a config that can successfully load and run a notebook with the spawner class dockerspawner, but after selecting a container using imagespawner (at the container selection screen), fails with a 500 error.

Any help would be appreciated.

Working config:

jupyter-backend@|[site name]|:~/jupyterhub$ sed -r '/^((#.*$)|$)/d' jupyterhub_config.py
from oauthenticator.github import GitHubOAuthenticator
c.JupyterHub.authenticator_class = GitHubOAuthenticator
c.JupyterHub.concurrent_spawn_limit = 16
c.JupyterHub.cookie_secret_file = '/home/jupyter-backend/jupyterhub/jupyterhub_cookie_secret'
c.JupyterHub.db_url = '/home/jupyter-backend/jupyterhub/jupyterhub.sqlite'
import os
c.JupyterHub.hub_connect_ip = os.environ["DOCKER_GATEWAY_IP"]
c.JupyterHub.hub_ip = '0.0.0.0'
c.JupyterHub.port = 443
c.JupyterHub.spawner_class = "dockerspawner.DockerSpawner"
c.JupyterHub.ssl_cert = '/etc/letsencrypt/live/|[site url]|/fullchain.pem'
c.JupyterHub.ssl_key = '/etc/letsencrypt/live/|[site url]|/privkey.pem'
c.Spawner.debug = True
c.DockerSpawner.image = "jupyter/scipy-notebook"
import os
c.GitHubOAuthenticator.oauth_callback_url = os.environ["OAUTH_CALLBACK_URL"]
c.GitHubOAuthenticator.client_id = os.environ["OAUTH_CLIENT_ID"]
c.GitHubOAuthenticator.client_secret = os.environ["OAUTH_CLIENT_SECRET"]

Non-working config:

jupyter-backend@|[site name]|:~/jupyterhub$ sed -r '/^((#.*$)|$)/d' jupyterhub_config.py
from oauthenticator.github import GitHubOAuthenticator
c.JupyterHub.authenticator_class = GitHubOAuthenticator
c.JupyterHub.concurrent_spawn_limit = 16
c.JupyterHub.cookie_secret_file = '/home/jupyter-backend/jupyterhub/jupyterhub_cookie_secret'
c.JupyterHub.db_url = '/home/jupyter-backend/jupyterhub/jupyterhub.sqlite'
import os
c.JupyterHub.hub_connect_ip = os.environ["DOCKER_GATEWAY_IP"]
c.JupyterHub.hub_ip = '0.0.0.0'
c.JupyterHub.port = 443
c.JupyterHub.spawner_class = "imagespawner.DockerImageChooserSpawner"
c.JupyterHub.ssl_cert = '/etc/letsencrypt/live/|[site url]|/fullchain.pem'
c.JupyterHub.ssl_key = '/etc/letsencrypt/live/|[site url]|/privkey.pem'
c.Spawner.debug = True
c.DockerImageChooserSpawner.dockerimages = [
        "jupyter/scipy-notebook",
]
import os
c.GitHubOAuthenticator.oauth_callback_url = os.environ["OAUTH_CALLBACK_URL"]
c.GitHubOAuthenticator.client_id = os.environ["OAUTH_CLIENT_ID"]
c.GitHubOAuthenticator.client_secret = os.environ["OAUTH_CLIENT_SECRET"]

Config diff:

-c.JupyterHub.spawner_class = "dockerspawner.DockerSpawner"
+c.JupyterHub.spawner_class = "imagespawner.DockerImageChooserSpawner"
---
-c.DockerSpawner.image = "jupyter/scipy-notebook"
+c.DockerImageChooserSpawner.dockerimages = [
+        "jupyter/scipy-notebook",
+]

Website error message:

500 : Internal Server Error

Failed to reach your server. Please try again later. Contact admin if the issue persists. You can try restarting your server from the home page.

JupyterHub debug log:

jupyterhub \
    --debug \
    --config="${HOME}/jupyterhub/jupyterhub_config.py"
+ jupyterhub --debug --config=/home/jupyter-backend/jupyterhub/jupyterhub_config.py
[D 2017-12-13 17:53:08.709 JupyterHub application:555] Looking for /home/jupyter-backend/jupyterhub/jupyterhub_config in /home/jupyter-backend
[D 2017-12-13 17:53:08.712 JupyterHub application:577] Loaded config file: /home/jupyter-backend/jupyterhub/jupyterhub_config.py
[D 2017-12-13 17:53:08.786 JupyterHub app:866] Generating new cookie_secret
[I 2017-12-13 17:53:08.786 JupyterHub app:871] Writing cookie_secret to /home/jupyter-backend/jupyterhub/jupyterhub_cookie_secret
[D 2017-12-13 17:53:08.786 JupyterHub app:886] Connecting to db: sqlite:////home/jupyter-backend/jupyterhub/jupyterhub.sqlite
[D 2017-12-13 17:53:08.794 JupyterHub orm:475] Stamping empty database with alembic revision 3ec6993fe20c
[I 2017-12-13 17:53:08.814 alembic.runtime.migration migration:117] Context impl SQLiteImpl.
[I 2017-12-13 17:53:08.814 alembic.runtime.migration migration:122] Will assume non-transactional DDL.
[I 2017-12-13 17:53:08.874 alembic.runtime.migration migration:327] Running stamp_revision  -> 3ec6993fe20c
[D 2017-12-13 17:53:08.875 alembic.runtime.migration migration:516] new branch insert 3ec6993fe20c
[W 2017-12-13 17:53:09.293 JupyterHub app:955] No admin users, admin interface will be unavailable.
[W 2017-12-13 17:53:09.293 JupyterHub app:956] Add any administrative users to `c.Authenticator.admin_users` in config.
[I 2017-12-13 17:53:09.294 JupyterHub app:983] Not using whitelist. Any authenticated user will be allowed.
[D 2017-12-13 17:53:09.332 JupyterHub app:1241] Loaded users:
[I 2017-12-13 17:53:09.337 JupyterHub app:1528] Hub API listening on http://0.0.0.0:8081/hub/
[W 2017-12-13 17:53:09.338 JupyterHub proxy:415]
    Generating CONFIGPROXY_AUTH_TOKEN. Restarting the Hub will require restarting the proxy.
    Set CONFIGPROXY_AUTH_TOKEN env or JupyterHub.proxy_auth_token config to avoid this message.
Dec 13 17:53:09 |[site name]| run_jupyterhub.sh[9231]:
[I 2017-12-13 17:53:09.338 JupyterHub proxy:458] Starting proxy @ https://*:443/
[D 2017-12-13 17:53:09.338 JupyterHub proxy:459] Proxy cmd: ['configurable-http-proxy', '--ip', '', '--port', '443', '--api-ip', '127.0.0.1', '--api-port', '8001', '--error-target', '
17:53:09.451 - info: [ConfigProxy] Proxying https://*:443 to (no default)
17:53:09.453 - info: [ConfigProxy] Proxy API at http://127.0.0.1:8001/api/routes
[D 2017-12-13 17:53:09.575 JupyterHub proxy:491] Proxy started and appears to be up
[D 2017-12-13 17:53:09.577 JupyterHub proxy:552] Proxy: Fetching GET http://127.0.0.1:8001/api/routes
[W 2017-12-13 17:53:09.613 JupyterHub proxy:304] Adding missing default route
[I 2017-12-13 17:53:09.613 JupyterHub proxy:370] Adding default route for Hub: / => http://172.17.0.1:8081
[D 2017-12-13 17:53:09.613 JupyterHub proxy:552] Proxy: Fetching POST http://127.0.0.1:8001/api/routes/
17:53:09.613 - info: [ConfigProxy] 200 GET /api/routes
17:53:09.620 - info: [ConfigProxy] Adding route / -> http://172.17.0.1:8081
17:53:09.621 - info: [ConfigProxy] 201 POST /api/routes/
[I 2017-12-13 17:53:09.621 JupyterHub app:1581] JupyterHub is now running at https://:443/
[I 2017-12-13 17:53:11.859 JupyterHub log:122] 302 GET /user/tjesser-ucdavis-edu/api/terminals?_=1513215013799 → /hub/user/tjesser-ucdavis-edu/api/terminals?_=1513215013799 (@::ffff:1
[I 2017-12-13 17:53:11.860 JupyterHub log:122] 302 GET /user/tjesser-ucdavis-edu/api/sessions?_=1513215013798 → /hub/user/tjesser-ucdavis-edu/api/sessions?_=1513215013798 (@::ffff:128
[W 2017-12-13 17:53:11.900 JupyterHub base:202] Invalid or expired cookie token
[W 2017-12-13 17:53:11.901 JupyterHub base:202] Invalid or expired cookie token
[I 2017-12-13 17:53:11.901 JupyterHub log:122] 302 GET /hub/user/tjesser-ucdavis-edu/api/sessions?_=1513215013798 → /hub/login?next=%2Fhub%2Fuser%2Ftjesser-ucdavis-edu%2Fapi%2Fsession
[W 2017-12-13 17:53:11.912 JupyterHub base:202] Invalid or expired cookie token
[W 2017-12-13 17:53:11.914 JupyterHub base:202] Invalid or expired cookie token
[I 2017-12-13 17:53:11.914 JupyterHub log:122] 302 GET /hub/user/tjesser-ucdavis-edu/api/terminals?_=1513215013799 → /hub/login?next=%2Fhub%2Fuser%2Ftjesser-ucdavis-edu%2Fapi%2Ftermin
[I 2017-12-13 17:53:11.997 JupyterHub log:122] 200 GET /hub/login?next=%2Fhub%2Fuser%2Ftjesser-ucdavis-edu%2Fapi%2Fsessions%3F_%3D1513215013798 (@::ffff:128.120.246.252) 21.77ms
[I 2017-12-13 17:53:11.998 JupyterHub log:122] 200 GET /hub/login?next=%2Fhub%2Fuser%2Ftjesser-ucdavis-edu%2Fapi%2Fterminals%3F_%3D1513215013799 (@::ffff:128.120.246.252) 0.67ms
[I 2017-12-13 17:53:16.038 JupyterHub log:122] 302 GET / → /hub (@::ffff:128.120.246.252) 0.80ms
[I 2017-12-13 17:53:16.070 JupyterHub log:122] 302 GET /hub → /hub/login (@::ffff:128.120.246.252) 0.76ms
[I 2017-12-13 17:53:16.101 JupyterHub log:122] 200 GET /hub/login (@::ffff:128.120.246.252) 1.67ms
[D 2017-12-13 17:53:16.283 JupyterHub log:122] 304 GET /favicon.ico (@::ffff:128.120.246.252) 2.23ms
[I 2017-12-13 17:53:19.323 JupyterHub oauth2:82] OAuth redirect: 'https://|[site url]|/hub/oauth_callback'
[I 2017-12-13 17:53:19.324 JupyterHub log:122] 302 GET /hub/oauth_login?next= → https://github.com/login/oauth/authorize?redirect_uri=https%3A%2F%2F|[site url]|%2Fhub%2Foau
[D 2017-12-13 17:53:21.493 JupyterHub base:268] Setting cookie for tjesser-ucdavis-edu: jupyter-hub-token, {'httponly': True, 'secure': True}
[I 2017-12-13 17:53:21.493 JupyterHub base:346] User logged in: tjesser-ucdavis-edu
[D 2017-12-13 17:53:21.493 JupyterHub user:184] Creating <class 'imagespawner.imagespawner.DockerImageChooserSpawner'> for tjesser-ucdavis-edu:
[I 2017-12-13 17:53:21.514 JupyterHub log:122] 302 GET /hub/oauth_callback?code=c175629286ec34253a18&state=eyJzdGF0ZV9pZCI6ICJjYmQ2ZDhmYjc2NTk0MDFjYTE3YTRlNTkxYWM4NTk1OCIsICJuZXh0X3Vy
[D 2017-12-13 17:53:21.541 JupyterHub pages:54] User is not running: /hub/home
[I 2017-12-13 17:53:21.542 JupyterHub log:122] 302 GET /hub/ → /hub/home (tjesser-ucdavis-edu@::ffff:128.120.246.252) 1.73ms
[I 2017-12-13 17:53:21.577 JupyterHub log:122] 200 GET /hub/home (tjesser-ucdavis-edu@::ffff:128.120.246.252) 15.35ms
[D 2017-12-13 17:53:21.787 JupyterHub log:122] 304 GET /favicon.ico (@::ffff:128.120.246.252) 1.28ms
[I 2017-12-13 17:53:24.054 JupyterHub log:122] 200 GET /hub/spawn (tjesser-ucdavis-edu@::ffff:128.120.246.252) 7.55ms
[D 2017-12-13 17:53:24.274 JupyterHub log:122] 304 GET /favicon.ico (@::ffff:128.120.246.252) 1.07ms
[D 2017-12-13 17:53:27.620 JupyterHub base:421] Initiating spawn for tjesser-ucdavis-edu
[D 2017-12-13 17:53:27.795 JupyterHub dockerspawner:444] Getting container 'jupyter-jupyter-scipy-notebook-tjesser-ucdavis-edu'
[D 2017-12-13 17:53:27.798 JupyterHub base:427] 0/16 concurrent spawns
[D 2017-12-13 17:53:27.799 JupyterHub base:430] 0 active servers
[I 2017-12-13 17:53:27.807 JupyterHub dockerspawner:452] Container 'jupyter-jupyter-scipy-notebook-tjesser-ucdavis-edu' is gone
[D 2017-12-13 17:53:27.810 JupyterHub dockerspawner:530] Starting host with config: {'binds': {}, 'links': {}, 'port_bindings': {8888: ('127.0.0.1',)}, 'network_mode': 'bridge'}
[I 2017-12-13 17:53:27.950 JupyterHub dockerspawner:540] Created container 'jupyter-jupyter-scipy-notebook-tjesser-ucdavis-edu' (id: 9d0ea65) from image jupyter/scipy-notebook
[I 2017-12-13 17:53:27.950 JupyterHub dockerspawner:557] Starting container 'jupyter-jupyter-scipy-notebook-tjesser-ucdavis-edu' (id: 9d0ea65)
[W 2017-12-13 17:53:28.347 JupyterHub user:385] DEPRECATION: Spawner.start should return (ip, port) in JupyterHub >= 0.7
[D 2017-12-13 17:53:28.347 JupyterHub spawner:727] Polling subprocess every 30s
[I 2017-12-13 17:53:29.003 JupyterHub log:122] 200 GET /hub/api (@172.17.0.2) 0.37ms
[D 2017-12-13 17:53:37.801 JupyterHub dockerspawner:444] Getting container 'jupyter-jupyter-scipy-notebook-tjesser-ucdavis-edu'
[D 2017-12-13 17:53:37.807 JupyterHub dockerspawner:430] Container 9d0ea65 status: {'Dead': False,
     'Error': '',
     'ExitCode': 0,
     'FinishedAt': '0001-01-01T00:00:00Z',
     'OOMKilled': False,
     'Paused': False,
     'Pid': 9367,
     'Restarting': False,
     'Running': True,
     'StartedAt': '2017-12-14T01:53:28.296807573Z',
     'Status': 'running'}
[W 2017-12-13 17:53:37.807 JupyterHub base:500] User tjesser-ucdavis-edu is slow to become responsive (timeout=10)
[D 2017-12-13 17:53:37.807 JupyterHub base:502] Expecting server for tjesser-ucdavis-edu at: http://|[site name]|:57421/user/tjesser-ucdavis-edu/
[I 2017-12-13 17:53:37.813 JupyterHub log:122] 302 POST /hub/spawn → /user/tjesser-ucdavis-edu/ (tjesser-ucdavis-edu@::ffff:128.120.246.252) 10197.46ms
[I 2017-12-13 17:53:37.834 JupyterHub log:122] 302 GET /user/tjesser-ucdavis-edu/ → /hub/user/tjesser-ucdavis-edu/ (@::ffff:128.120.246.252) 0.49ms
[D 2017-12-13 17:53:37.865 JupyterHub base:718] Waiting for tjesser-ucdavis-edu pending spawn
[I 2017-12-13 17:53:47.868 JupyterHub base:722] Pending spawn for tjesser-ucdavis-edu didn't finish in 10.0 seconds
[I 2017-12-13 17:53:47.868 JupyterHub base:727] tjesser-ucdavis-edu is pending spawn
[I 2017-12-13 17:53:47.874 JupyterHub log:122] 200 GET /hub/user/tjesser-ucdavis-edu/ (tjesser-ucdavis-edu@::ffff:128.120.246.252) 10011.01ms
[D 2017-12-13 17:53:48.196 JupyterHub log:122] 304 GET /favicon.ico (@::ffff:128.120.246.252) 1.16ms
[D 2017-12-13 17:53:53.158 JupyterHub base:718] Waiting for tjesser-ucdavis-edu pending spawn
[W 2017-12-13 17:53:55.782 JupyterHub user:458] tjesser-ucdavis-edu's server never showed up at http://|[site name]|:57421/user/tjesser-ucdavis-edu/ after 30 seconds. Giving up
[D 2017-12-13 17:53:55.783 JupyterHub dockerspawner:444] Getting container 'jupyter-jupyter-scipy-notebook-tjesser-ucdavis-edu'
[D 2017-12-13 17:53:55.788 JupyterHub dockerspawner:430] Container 9d0ea65 status: {'Dead': False,
     'Error': '',
     'ExitCode': 0,
     'FinishedAt': '0001-01-01T00:00:00Z',
     'OOMKilled': False,
     'Paused': False,
     'Pid': 9367,
     'Restarting': False,
     'Running': True,
     'StartedAt': '2017-12-14T01:53:28.296807573Z',
     'Status': 'running'}
[I 2017-12-13 17:53:55.788 JupyterHub dockerspawner:628] Stopping container jupyter-jupyter-scipy-notebook-tjesser-ucdavis-edu (id: 9d0ea65)
[E 2017-12-13 17:53:56.297 JupyterHub gen:914] Exception in Future <tornado.concurrent.Future object at 0x7f9bd2c49c88> after timeout
    Traceback (most recent call last):
      File "/home/jupyter-backend/miniconda3/lib/python3.6/site-packages/tornado/gen.py", line 910, in error_callback
        future.result()
      File "/home/jupyter-backend/miniconda3/lib/python3.6/site-packages/jupyterhub/handlers/base.py", line 445, in finish_user_spawn
        yield spawn_future
      File "/home/jupyter-backend/miniconda3/lib/python3.6/site-packages/jupyterhub/user.py", line 476, in spawn
        raise e
      File "/home/jupyter-backend/miniconda3/lib/python3.6/site-packages/jupyterhub/user.py", line 450, in spawn
        resp = yield server.wait_up(http=True, timeout=spawner.http_timeout)
      File "/home/jupyter-backend/miniconda3/lib/python3.6/site-packages/jupyterhub/utils.py", line 180, in wait_for_http_server
        timeout=timeout
      File "/home/jupyter-backend/miniconda3/lib/python3.6/site-packages/jupyterhub/utils.py", line 135, in exponential_backoff
        raise TimeoutError(fail_message)
    TimeoutError: Server at http://|[site name]|:57421/user/tjesser-ucdavis-edu/ didn't respond in 30 seconds
Dec 13 17:53:56 |[site name]| run_jupyterhub.sh[9231]:
[E 2017-12-13 17:53:56.300 JupyterHub gen:914] Exception in Future <tornado.concurrent.Future object at 0x7f9bd2c49c88> after timeout
    Traceback (most recent call last):
      File "/home/jupyter-backend/miniconda3/lib/python3.6/site-packages/tornado/gen.py", line 910, in error_callback
        future.result()
      File "/home/jupyter-backend/miniconda3/lib/python3.6/site-packages/jupyterhub/handlers/base.py", line 445, in finish_user_spawn
        yield spawn_future
      File "/home/jupyter-backend/miniconda3/lib/python3.6/site-packages/jupyterhub/user.py", line 476, in spawn
        raise e
      File "/home/jupyter-backend/miniconda3/lib/python3.6/site-packages/jupyterhub/user.py", line 450, in spawn
        resp = yield server.wait_up(http=True, timeout=spawner.http_timeout)
      File "/home/jupyter-backend/miniconda3/lib/python3.6/site-packages/jupyterhub/utils.py", line 180, in wait_for_http_server
        timeout=timeout
      File "/home/jupyter-backend/miniconda3/lib/python3.6/site-packages/jupyterhub/utils.py", line 135, in exponential_backoff
        raise TimeoutError(fail_message)
    TimeoutError: Server at http://|[site name]|:57421/user/tjesser-ucdavis-edu/ didn't respond in 30 seconds
Dec 13 17:53:56 |[site name]| run_jupyterhub.sh[9231]:
[E 2017-12-13 17:53:56.302 JupyterHub web:1590] Uncaught exception GET /hub/user/tjesser-ucdavis-edu/ (::ffff:128.120.246.252)
    HTTPServerRequest(protocol='https', host='|[site url]|', method='GET', uri='/hub/user/tjesser-ucdavis-edu/', version='HTTP/1.1', remote_ip='::ffff:128.120.246.252', hea
    Traceback (most recent call last):
      File "/home/jupyter-backend/miniconda3/lib/python3.6/site-packages/tornado/web.py", line 1511, in _execute
        result = yield result
      File "/home/jupyter-backend/miniconda3/lib/python3.6/site-packages/jupyterhub/handlers/base.py", line 720, in get
        yield gen.with_timeout(timedelta(seconds=self.slow_spawn_timeout), spawner._spawn_future)
      File "/home/jupyter-backend/miniconda3/lib/python3.6/site-packages/jupyterhub/handlers/base.py", line 445, in finish_user_spawn
        yield spawn_future
      File "/home/jupyter-backend/miniconda3/lib/python3.6/site-packages/jupyterhub/user.py", line 476, in spawn
        raise e
      File "/home/jupyter-backend/miniconda3/lib/python3.6/site-packages/jupyterhub/user.py", line 450, in spawn
        resp = yield server.wait_up(http=True, timeout=spawner.http_timeout)
      File "/home/jupyter-backend/miniconda3/lib/python3.6/site-packages/jupyterhub/utils.py", line 180, in wait_for_http_server
        timeout=timeout
      File "/home/jupyter-backend/miniconda3/lib/python3.6/site-packages/jupyterhub/utils.py", line 135, in exponential_backoff
        raise TimeoutError(fail_message)
    TimeoutError: Server at http://|[site name]|:57421/user/tjesser-ucdavis-edu/ didn't respond in 30 seconds
Dec 13 17:53:56 |[site name]| run_jupyterhub.sh[9231]:
[D 2017-12-13 17:53:56.308 JupyterHub base:633] No template for 500
[E 2017-12-13 17:53:56.325 JupyterHub log:114] {
      "X-Forwarded-Host": "|[site url]|",
      "X-Forwarded-Proto": "https",
      "X-Forwarded-Port": "443",
      "X-Forwarded-For": "::ffff:128.120.246.252",
      "Cache-Control": "max-age=0",
      "If-None-Match": "\"64d3e466503cd9f50ef9fda414d9dfd43444ce36\"",
      "Upgrade-Insecure-Requests": "1",
      "Connection": "close",
      "Cookie": "jupyter-hub-token=\"2|1:0|10:1513216401|17:jupyter-hub-token|44:ZTIzZjJiZWJkOTdmNDViOWIzMmUyMDAwYWQyYmU0NWI=|6e7a41fdb7fd32ade821dd78cd9ec20773bdd90bd2e4c918d7d803c90
      "Referer": "https://|[site url]|/hub/spawn",
      "Accept-Encoding": "gzip, deflate, br",
      "Accept-Language": "en-US,en;q=0.5",
      "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
      "User-Agent": "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:57.0) Gecko/20100101 Firefox/57.0",
      "Host": "|[site url]|"
    }
[E 2017-12-13 17:53:56.325 JupyterHub log:122] 500 GET /hub/user/tjesser-ucdavis-edu/ (tjesser-ucdavis-edu@::ffff:128.120.246.252) 3167.87ms
[D 2017-12-13 17:53:56.451 JupyterHub log:122] 304 GET /hub/static/css/style.min.css?v=14dc0b5a8b791d573b687aa626aa2600 (@::ffff:128.120.246.252) 0.62ms
[D 2017-12-13 17:53:56.453 JupyterHub log:122] 304 GET /hub/static/components/requirejs/require.js?v=e7199843dfd445bb66ec816e98a03214 (@::ffff:128.120.246.252) 0.60ms
[D 2017-12-13 17:53:56.456 JupyterHub log:122] 304 GET /hub/static/components/jquery/dist/jquery.min.js?v=c9f5aeeca3ad37bf2aa006139b935f0a (@::ffff:128.120.246.252) 0.44ms
[D 2017-12-13 17:53:56.456 JupyterHub log:122] 304 GET /hub/static/components/bootstrap/dist/js/bootstrap.min.js?v=5869c96cc8f19086aee625d670d741f9 (@::ffff:128.120.246.252) 0.36ms
[D 2017-12-13 17:53:56.543 JupyterHub log:122] 304 GET /hub/logo (@::ffff:128.120.246.252) 1.24ms
[D 2017-12-13 17:53:56.681 JupyterHub log:122] 304 GET /favicon.ico (@::ffff:128.120.246.252) 0.46ms
ryanlovett commented 6 years ago

Hi Tyler, sorry I haven't been able to attend to this. I should have some time in a couple of weeks when the beginning of the semester is behind me.

tjesser-ucdavis-edu commented 6 years ago

Thank you for letting me know.

tjesser-ucdavis-edu commented 6 years ago

Are there any updates on the timeline for this issue?

ryanlovett commented 6 years ago

Hi Tyler, the functionality of this spawner will be integrated into the dockerspawner. See jupyterhub/dockerspawner#219.

tjesser-ucdavis-edu commented 6 years ago

Ah, neat. Thanks for pointing out that PR.

I guess this issue can be closed unless we should wait until it's committed.

ryanlovett commented 6 years ago

I'll wait for that just in case, then I'll close this PR and update the README to deprecate this project.