设置 Databricks 资产捆绑包以在隔离的环境中工作
Databricks 资产捆绑包需要依赖于外部库和工具才能正常运行。 必须能够访问这些依赖项的位置 (URL),否则捆绑包初始化会失败。 因此,在无法访问 Internet 的隔离网络环境中使用 Databricks 资产捆绑包之前,需要下载 Databricks CLI 提供的 Docker 容器映像,并通过 Docker 管理 Databricks 资产捆绑包。
下载 Docker 容器映像
Databricks CLI Docker 容器映像支持 ARM64 和 AMD64 CPU 体系结构,可在 Databricks CLI GitHub 存储库中获取。 可以通过运行以下命令下载最新的可用映像:
docker pull ghcr.io/databricks/cli:latest
如果你要下载与特定 Databricks CLI 版本关联的映像,请指定版本,如下所示:
docker pull ghcr.io/databricks/cli:v0.218.0
通过 Docker 管理 Databricks 资产捆绑包
下载相应的 Docker 容器后,可以使用 Docker CLI 直接或以交互方式执行 databricks bundle
命令。
直接执行
若要直接执行 bundle
命令,请使用 docker run
。 例如,以下命令部署 /my-bundle
中的捆绑包:
docker run -v /my-bundle:/my-bundle -e DATABRICKS_HOST=... -e DATABRICKS_TOKEN=... --workdir /my-bundle ghcr.io/databricks/cli:latest bundle deploy
在上面的示例中,-v /my-bundle:/my-bundle
使用同一捆绑包名称将 my-bundle
装载到 Docker 容器的文件系统中,-e DATABRICKS_HOST=... -e DATABRICKS_TOKEN=...
通过将主机和凭据作为环境变量传递来验证 Databricks CLI,--workdir /my-bundle ghcr.io/databricks/cli:latest
将当前工作目录设置为 /my-bundle
。 其他 docker run
命令选项可在 Docker 文档中找到。
交互式执行
若要以交互方式执行 bundle
命令,首先请结合 -it
和 --entrypoint
选项使用 docker run
来启动附加到容器的集成 sh
终端会话,如下所示:
docker run -v /my-bundle:/my-bundle -e DATABRICKS_HOST=... -e DATABRICKS_TOKEN=... -it --entrypoint /bin/sh --workdir /my-bundle ghcr.io/databricks/cli:latest
当 Docker 终端会话启动时,可以直接在终端中执行 bundle
命令。 以下示例部署名为 my-bundle
的捆绑包:
/my-bundle # databricks bundle deploy
卷装载会双向同步,因此你可以在本地对捆绑包进行更改,然后使用此 Docker 终端会话执行 bundle
命令。 在这种情况下,无需再次执行 docker run
。