有没有办法从datalab获取谷歌云外壳持久性磁盘?

时间:2017-06-29 20:07:15

标签: google-cloud-platform google-cloud-datalab

我只想转到shell,克隆存储库,转到datalab并在该存储库上工作,将其拉回并删除实例。

为了做到这一点,我需要访问已在永久磁盘中克隆的存储库。

谢谢

1 个答案:

答案 0 :(得分:2)

您的Datalab实例无法访问Cloud Shell使用的磁盘,但您可以尝试以下解决方法:

  1. 创建Datalab实例。
  2. 从Cloud Shell实例,使用gcloud compute copy-files将文件复制到Datalab实例。
  3. 处理Datalab内部的文件。
  4. 返回Cloud Shell实例并使用gcloud compute copy-files将更改的文件拉回您的Cloud Shell实例。
  5. 删除Datalab实例。
  6. 但是,最简单的选择是,如果您可以将存储库直接克隆到Datalab实例,使用它,然后直接从Datalab推回存储库。

    对于GitHub存储库,我更喜欢设置它的方法是在我的Datalab实例上生成SSH密钥对,然后将其作为部署密钥添加到我的存储库。

    在我的Datalab实例中运行的代码单元格是:

    %bash
    
    export GIT_KEYFILE="/content/datalab/.ssh/id_rsa"
    mkdir -p $(dirname ${GIT_KEYFILE})
    ssh-keygen -t rsa -b 4096 -C `git config --global user.email` -P "" -f "${GIT_KEYFILE}"
    echo "mkdir -p ~/.ssh && cp ${GIT_KEYFILE}* ~/.ssh/ && ssh-keyscan -t rsa github.com >> ~/.ssh/known_hosts" >> /content/datalab/.config/startup.sh
    mkdir -p ~/.ssh && cp ${GIT_KEYFILE}* ~/.ssh/ && ssh-keyscan -t rsa github.com >> ~/.ssh/known_hosts
    
    echo $'\nProvide the following to GitHub as your deploy key:'
    cat "${GIT_KEYFILE}.pub"
    

    两者都生成密钥并确保在Datalab启动时正确配置git以使用该密钥。

    您需要复制并粘贴到GitHub中的位作为部署密钥位于以“ssh-rsa”开头并以您的电子邮件地址结尾的代码单元格的输出中。