How to precompile and run Pluto notebook in docker #871
Replies: 1 comment
-
From the last two questions I get the impression that you are trying to run a public Pluto server on a computer with sensitive data, which I do not recommend! Don't do it. You definitely need to run Pluto in a containerized environment, because access to the server means access to running Julia code, which can execute anything on your computer. It is not possible to use Pluto to give 'secure access' to someone, the only solution is OS virtualization (e.g. Docker) or full isolation (e.g. rent a computer). That being said, we are currently working on these kinds of features, and we will release guides in the next couple of months. Stay tuned! |
Beta Was this translation helpful? Give feedback.
-
Hi, Pluto has been a breath of fresh air as I've been learning Julia. I love the reactivity it provides and all the other interactive capabilities. Thanks for creating it!
Context of question:
I am figuring out a way to publish a dynamic Pluto notebook. I want to write a notebook and create a link I can publish which someone can use to open a Pluto notebook and play around with it. So everyone opening the link have their own instance of the notebook to play around.
At a high level seems like I need to figure out the following
-- I was thinking of using docker to do that.
-- If it will be docker, then I want a way to start the container and run Julia with Pluto quickly
-- I was hoping to use PackageCompiler.jl to create sysimage with Pluto and notebook
-- Then when the docker container is instantiated it uses that sysimage to start and opens the notebook in Pluto quickly
-- Maybe using Apache OpenWhisk to start a container on request and kill it afterwards
This is more of a curiosity project as I realize this is certainly not scalable, but I want to have something that is reproduceable and somewhat secure boundaries.
Questions:
In this script warmup.jl there is a call to
load_notebook
andupdate_save_run!
and I'm trying to understand if they are run with the notebook as part of PackageCompiler.jl creating sysimage then does that mean it will run the notebook, compile and package all the dependencies as part of sysimage?Is there a way to run Pluto server which doesn't allow any direct access to file system ? I couldn't find any option in
ServerSession
passed toPluto.run()
to disable total file system access (in index.html or the bar above notebook).Is there a way to run Pluto server which only points and starts one notebook and disable access to
index.html
? So if I openlocalhost:1234
then it only opens the notebook I started.Beta Was this translation helpful? Give feedback.
All reactions