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中找到其他 命令选项。
交互式执行
若要以交互方式执行 bundle 命令,请首先将 docker run 与 -it 和 --entrypoint 选项配合使用,以启动附加到容器的集成 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。