Skip to content

Docker安装

dbt Core和dbt Labs维护的所有适配器插件都可以使用Docker镜像,并通过GitHub Packages分发在public registry.

在生产环境中使用预构建的Docker安装dbt Core有几个好处:它已经包括dbt Core、一个或多个数据库适配器以及它们所有依赖项。相比之下,pip-install dbt core dbt-<adapter>需要更长的时间来运行,并且将始终安装每个依赖项的最新兼容版本。

如果您没有设置Python环境,您也可以使用Docker在本地进行安装和开发。请注意,如果您的操作系统与构建Docker镜像的系统不同,那么以这种方式运行dbt可能会慢得多。如果您习惯于本地开发,我们建议您通过Homebrewpip来安装dbt Core。

准备

  • 您已经安装了Docker。有关更多信息,请参阅Docker.
  • 您了解所需哪种数据库适配器。有关更多信息,请参阅关于dbt适配器.
  • 您了解dbt Core是如何进行版本控制的。有关更多信息,请参阅关于dbt Core版本.
  • 您基本了解dbt,dbt工作流,以及在命令行界面(CLI)中进行本地开发。有关更多信息,请参阅关于dbt.

从Github中安装dbt Docker镜像

官方dbt docker镜像托管在packages in the dbt-labs GitHub organization. 我们维护每个数据库适配器的每个版本的镜像和tag,以及两个在发布时更新为新版本的tag: - latest: dbt-core和这个适配器的最新版本 - <Major>.<Minor>.latest: dbt-core和该适配器的最新补丁,适用于<Major>.<Minor>版本。例如,1.1.latest包括dbt Core v1.1的最新补丁.

使用docker pull命令来安装镜像

docker pull ghcr.io/dbt-labs/<db_adapter_name>:<version_tag>

在容器中运行dbt Docker镜像

dbt Docker镜像的ENTRYPOINTdbt命令。您可以将项目挂载到/usr/app并正常使用dbt:

docker run \
--network=host \
--mount type=bind,source=path/to/project,target=/usr/app \
--mount type=bind,source=path/to/profiles.yml,target=/root/.dbt/ \
<dbt_image_name> \
ls

注意

  • 挂载点 必须 是一个绝对路径
  • 您可能需要根据数据仓库或数据库主机的具体情况对docker网络设置进行调整.

构建自定义dbt Docker镜像

如果预先制作的镜像不符合你的使用要求,我们提供了DockerfileREADME 来使用各种方式构建自定义镜像.

值得一提的是,Dockerfile支持创建以下镜像: - dbt Labs维护的所有适配器镜像 - 安装了一个或多个第三方适配器镜像 - 针对另一个系统架构的镜像

请注意,如果您选择构建自己的Docker镜像,我们无法提供专门的支持。如果您遇到问题,欢迎您在社区寻求帮助,或在dbt-core仓库中open an issue.如果大量用户寻求相同的问题,我们会将问题标记为help_wanted,并邀请社区参与。