【问题标题】:Local development and remote deploying in GCP/JupyterHubGCP/JupyterHub 中的本地开发和远程部署
【发布时间】:2020-12-14 09:59:42
【问题描述】:

我在 GCP 的虚拟机中部署了一个多用户 JupyterHub 实例。由于 JupyterHub 是多用户但单实例的,因此我正在尝试找到一种方法来在 VM 中进行源代码的本地开发和远程部署,从而防止多个用户进行远程开发。

这是否可能,或者我应该以其他方式解决这个问题?

【问题讨论】:

    标签: git google-cloud-platform jupyterhub


    【解决方案1】:

    对于JupyterHub,我认为“部署”正在本地开发和测试的代码的最佳方式是,您可以使用 git(例如 GitHub)创建本地存储库,然后您可以将该本地存储库的内容推送到远程存储库。这样,每个用户(在他们自己的个人计算机上)都可以做出自己的贡献,然后在 JupyterHub 上,您可以使用终端从远程存储库下载其结果。

    你可以这样打开终端:

    然后从那里克隆/拉取远程存储库中的更改,如下所示:

    jupyter-username@instance-name:~$ git clone https://github.com/jrjohansson/scientific-python-lectures.git
    

    这种方法也适用于实例,每个用户都可以在位于实例中的本地存储库中进行更改(每个用户将拥有一个单独的本地存储库),然后他们可以将更改推送和拉取到远程存储库,以便他们的工作保持同步。

    编辑:

    作为我的回答的补充,所描述的第一个场景是每个合作者在他们自己的个人计算机上都有一个本地存储库(我认为这是您在问题上本地所指的内容),这样他们将拥有自己的工作空间和将无权访问所有其他用户存储库。如果您想进一步分离存储库,您可以查看forking projects 的工作原理,因此每个协作者都可以拥有主项目的分支,然后当任何人想要添加他们的更改时,他们可以提出拉取请求。

    最后,我认为您会发现以下链接对使用 git link1link2 进行部署很有用,有关拉取请求的更多信息请参阅 thismerginguser account repository 的权限和为organizations

    【讨论】:

    • 这是我试图避免的,在虚拟机中存储了几个单独的存储库。特别是关于有权访问每个其他用户存储库的每个用户。我真的想要一种在本地机器上工作的方法,然后在 VM 中部署和运行。
    • @RuiBastos 我编辑了一些我的答案以使其更清晰,还添加了一些额外的参考资料,您可以考虑使用 JupyterHub 和 git 进行部署。
    • 仍然没有做我想做的事。也许我的问题不清楚,我应该编辑它?我想我想要的是有一种方法可以使用安装在 VM 中的 Python 作为我本地开发项目的内核。如果我将存储库克隆到虚拟机,每个有访问权限的人都可以编辑和推送它,可能会失去可追溯性。
    • @RuiBastos 您在 VM 上拥有的和实际存储库是两个不同的东西,访问级别将由您设置,如果您不希望您的合作者对推送的内容拥有最终决定权到主存储库,您可以要求他们使用我在答案中提到的分叉,并限制他们对主存储库的访问,他们不应该有推送更改的权限。我在我的答案中添加了一些链接,以便您了解拉取请求的工作方式以及 git 的权限级别。我建议你点击链接并阅读它,许多开源项目都是这样工作的。
    • @RuiBastos 重新阅读您的上一条评论后,我想您想在本地使用您的笔记本添加代码并进行更改(没有本地执行),并在 JupyterHub 上运行它,我想我以前见过这种方法,但这是不同的,通常因为你需要在本地环境和 Jupyter 之间保持 SSH 连接打开,不确定这是否适用于 JupyterHub,但我已经在 J​​upyterLab 中看到过,在这里你可以看看是怎么工作的cloud.google.com/ai-platform/notebooks/docs/ssh-access建议你看一下本地端口转发链接。
    猜你喜欢
    • 1970-01-01
    • 2012-10-28
    • 2015-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-28
    相关资源
    最近更新 更多