DBX Databricks:在工作区集群中安装私有GitHub仓库
解决Databricks集群克隆私有GitHub仓库的认证问题
方法1:通过Databricks秘密管理存储GitHub个人访问令牌
- 在GitHub生成具备仓库读取权限的个人访问令牌(PAT),权限勾选
repo即可满足需求 - 在Databricks工作区的秘密管理器中创建一个密钥范围(比如
github-credentials),然后在该范围内添加密钥github-pat,值填入你的GitHub PAT - 修改DBX的部署配置(如
deploy.json),通过两种方式注入认证信息:- 集群初始化脚本中配置git凭证:
其中git config --global credential.helper '!f() { echo "username=${GITHUB_USER}"; echo "password=${GITHUB_PAT}"; }; f'GITHUB_USER为你的GitHub用户名,GITHUB_PAT通过dbutils.secrets.get("github-credentials", "github-pat")从Databricks秘密中读取后注入环境变量 - 动态修改wheel依赖的GitHub URL格式:使用
git+https://<PAT>@github.com/你的用户名/私有仓库名.git,注意不要硬编码PAT,需通过Databricks秘密动态替换
- 集群初始化脚本中配置git凭证:
方法2:通过Databricks Repos关联GitHub私有仓库
- 在Databricks工作区创建Repo,直接关联你的私有GitHub仓库,关联过程中输入GitHub PAT完成认证
- 将项目代码迁移至该Databricks Repo中,通过DBX直接从Repo路径部署代码,而非本地打包
- 这种方式下,集群会自动复用Databricks Repo已有的GitHub认证信息,无需额外配置,适合在Databricks环境内完成开发部署的场景
方法3:本地打包时嵌入私有依赖源码(应急方案)
- 若临时不想配置认证,可在本地将私有GitHub仓库的代码下载至项目目录,修改
pyproject.toml将依赖指向本地路径:[tool.poetry.dependencies] 你的私有包名 = { path = "./私有包本地路径" } - 打包wheel时会将私有依赖的源码一并打包,集群安装wheel时无需再拉取GitHub仓库,但该方式不利于依赖版本管理,仅适合临时测试场景
内容的提问来源于stack exchange,提问作者flbzer
相关产品推荐
相关产品推荐

