我想设置google cloud datalab从github repo读取我的笔记本,并在我做出更改时将它们推回去。
我能够设置一个镜像我的github项目的云仓库但是当在datalab中使用ungit推送更改时,它表示连接的云仓库是只读的。
其他人如何设置它?
答案 0 :(得分:5)
我首先使用datalab start <INSTANCE_NAME_HERE>
命令和**--no-create-repository**
标志设置datalab实例,以便不设置Cloud Source repo。然后我按照这些步骤克隆了一个git repo:
答案 1 :(得分:3)
即使使用两因素身份验证,该功能也可以使用,并且不涉及使用Web用户界面。
答案 2 :(得分:2)
已连接的云源存储库仅以一种方式同步,从Github / BitBucket到云源回购,请注意顶部here的注释。
Datalab automatically integrates,其中包含一个不是镜像的Cloud Source仓库,因此您可以单独拉动并推送它。如果您需要使用Github仓库,则需要在托管Datalab容器内的Datalab实例的VM上设置凭据。确保您是唯一可以访问该云项目的人,因为所有项目读者都可以访问虚拟机。
答案 3 :(得分:1)
在github中:
在gcp中:
向下滚动到“自定义元数据”部分。单击并拖动与“用户数据”脚本组件关联的设置。 systemd datalab服务有一个定义 - 修改它并添加/ root dir mount定义:
-v /mnt/disks/datalab-pd/root:/root
保存修改。
创建目录
mkdir -p /mnt/disks/datalab-pd/root/.ssh
在.ssh目录中放置以前生成的私有ssh密钥和git配置文件(〜/ .ssh / config)
配置文件应如下所示:
host github.com
HostName github.com
IdentityFile ~/.ssh/id_rsa
User git
重新启动datalab实例后,你应该能够推送到git repo
答案 4 :(得分:0)
我尝试了以上各种答案,但没有任何效果。但是,这种方法确实有效。
这已使用github存储库进行了测试。我必须关闭两因素身份验证才能使其正常工作。如果有问题,可以将其关闭然后再打开。
将GCP源存储库连接到您的github帐户。单击新的回购。选择连接到外部存储库。按照向导进行操作。
创建一个datalab实例。使用create datalab your-dl-instance
方法。
在云控制台上的存储库浏览器中,显示用于显示如何克隆存储库的方法。它看起来应该像这样:gcloud source repos clone github_yourusername_someproj --project=someproj
老实说,我不确定这是否有价值,但是此过程将在GCP中反映您的github存储库。稍后,当我将更改推送到远程服务器时,当github存储库更新时,我神奇地看到此存储库已更新。也许
连接到数据实验室。
创建一个笔记本,为其命名。我叫我的add_repo。创建一个使用bash魔术的单元。让它克隆仓库。使用https克隆github存储库。如果使用上面显示的gcloud命令,它将打印一条有关此镜像的消息。它会告诉您执行以下操作。代替
%% bash
现在,您在大型datalab笔记本git repo中有一个git repo。
使用右上方的菜单栏图标在datalab笔记本中打开ungit。
您将看到一个新目录,此时您无法将更改推送到该目录。
在ungit中,单击下拉的submodules
并选择add submodule
。
输入yourgithubrepo
作为路径,该路径与执行克隆后在datalab笔记本中看到的目录相对应。它不应以/ content / datalab / notebooks之类的名称开头。只需使用与新目录匹配的仓库名称即可。
对于URL,在git clone
命令之后输入上面使用的克隆URL。
单击ok
时,您会看到.gitmodules已在ungit中更新。将这些更改提交到您的/ content / datalab / notebooks存储库中。
在子目录中为您的github存储库创建一个测试笔记本。保存。 Ungit应该在与模块相对应的目录中显示更改,而不是笔记本本身。即。 ungit显示yourgithubrepo
已被修改。如果将鼠标悬停在更改上,则工具提示将显示该子项目是肮脏的。
单击submodules
的下拉菜单,然后选择yourgithubrepo
。现在将ungit更改为/content/datalab/notebooks/yourgithubrepo
。它还将显示一个黄色横幅,显示“这是一个子模块”。提交并推动您的更改。它将提示您输入登录名和github密码。假设您已禁用两因素身份验证,则此推送将显示在github和google cloud中。如果启用了两因素身份验证,则ungit无法处理它。您将收到一条错误消息,提示身份验证失败。