thanks for your suggestions will check out these options.

best,
Aakash

On Fri, Feb 14, 2020 at 12:19 AM Jason Anderson <[email protected]>
wrote:

> Tim, that's cool, I didn't realize BinderHub supported authentication.
> Definitely a more production-grade setup.
>
> On 2/13/20 10:06 AM, Tim Head wrote:
>
> If you are looking for a production grade setup that builds containers on
> demand and uses JupyterHub in the background give
> https://github.com/jupyterhub/binderhub a spin.
>
> T
>
> On Thu, Feb 13, 2020 at 4:46 PM Jason Anderson <[email protected]>
> wrote:
>
>> Hi Aakash,
>>
>> You could look at the named servers[1] feature for this. It allows you to
>> allow users to spawn multiple Jupyter server containers assigned to them. A
>> solution for your use case would probably require some additional
>> functionality built in to JupyterHub. We have explored something similar in
>> a three-part solution.
>>
>> Part 1: use the pre_spawn_hook[2] functionality of the spawner to adjust
>> spawn configurations based on something on the request. In our case, we
>> inspected the request query string for some special arguments. In your
>> case, those arguments could contain the location of the Notebook and/or
>> perhaps the package requirements definition. This information can be passed
>> to the spawner as environment variables; other ways of passing the
>> information may be possible.
>>
>> Part 2: extend a default JupyterLab docker container with a custom start
>> script that checks those environment variables. Maybe it checks out the
>> Notebook remotely and pip installs the required packages. I am not aware of
>> a pre-built solution for this; repo2docker has the ability to do it but
>> last time I looked, it's not possible to extract just the logic that scans
>> for requirements.txt files and installs them; it can only output new
>> Dockerfiles. Still a good place to steal from ;). Once the packages are
>> installed, you call the original JupyterLab start script.
>>
>> Part 3 (optional): register a custom handler (via extra_handlers[3]) in
>> JupyterHub if you want to make it easier to direct the user to your spawn
>> URL. In Part 1, your spawn url would have to look something like
>> /spawn/{user_name}/{server_name}?notebook_url={notebook}. The server_name
>> would be auto-generated as each server must have a unique name. We used
>> some hash of the input params. It's probably also to encode the input
>> params (like your notebook name) directly as the server name.
>>
>> Hope this gives you some ideas,
>> /Jason
>>
>> [1]:
>> https://jupyterhub.readthedocs.io/en/stable/reference/rest.html#enabling-users-to-spawn-multiple-named-servers-via-the-api
>> [2]:
>> https://jupyterhub.readthedocs.io/en/stable/api/spawner.html#jupyterhub.spawner.Spawner.pre_spawn_hook
>> [3]:
>> https://jupyterhub.readthedocs.io/en/stable/api/app.html#jupyterhub.app.JupyterHub.extra_handlers
>>
>> On 2/13/20 7:28 AM, Aakash Sharma wrote:
>>
>> Hi I understand jupyterhub has a docker spawner that will give a container 
>> per user and isolate so users do not interfere their work. But if we wish to 
>> have a kaggle kernel like feature that for each notebook we spawn a 
>> container import required packages library build the environment and assign 
>> to user. Essentially multiple containers spawned with required dependencies 
>> and assigned to user. How it may be achieved. Thx, aakash
>>
>>
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "Project Jupyter" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to [email protected].
>> To view this discussion on the web visit
>> https://groups.google.com/d/msgid/jupyter/2f9c304a-2de3-33bd-4a00-5ddf1f836ac3%40uchicago.edu
>> <https://groups.google.com/d/msgid/jupyter/2f9c304a-2de3-33bd-4a00-5ddf1f836ac3%40uchicago.edu?utm_medium=email&utm_source=footer>
>> .
>>
> --
> You received this message because you are subscribed to the Google Groups
> "Project Jupyter" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/jupyter/CAN3x1RZUD1vFcwgXBe_ysLOKGoNXLnN%3Dge8%2B47ycw4yVV6tJTg%40mail.gmail.com
> <https://groups.google.com/d/msgid/jupyter/CAN3x1RZUD1vFcwgXBe_ysLOKGoNXLnN%3Dge8%2B47ycw4yVV6tJTg%40mail.gmail.com?utm_medium=email&utm_source=footer>
> .
>
>
> --
> You received this message because you are subscribed to the Google Groups
> "Project Jupyter" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/jupyter/7f9a4185-093a-bf93-7562-a07944e20aff%40uchicago.edu
> <https://groups.google.com/d/msgid/jupyter/7f9a4185-093a-bf93-7562-a07944e20aff%40uchicago.edu?utm_medium=email&utm_source=footer>
> .
>

-- 
You received this message because you are subscribed to the Google Groups 
"Project Jupyter" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jupyter/CA%2BrXD%2BVqR5U2vn3ORqVfNgBsH3Uoe2MfW-KZ5AYyAR9draSrKw%40mail.gmail.com.

Reply via email to