首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何配置DBT依赖项而不手动运行dbt dep?

如何配置DBT依赖项而不手动运行dbt dep?
EN

Stack Overflow用户
提问于 2020-12-27 17:04:01
回答 4查看 4.3K关注 0票数 4

我对DBT很陌生,目前正在尝试构建一个Docker容器,在其中我可以直接运行DBT命令。我有一个导出env变量(envs.sh)的文件,如下所示:

代码语言:javascript
复制
export DB_HOST="secret"
export DB_PWD="evenabiggersecret"

我的packages.yml看起来像:

代码语言:javascript
复制
packages:
  - package: fishtown-analytics/dbt_utils
    version: 0.6.2

我构建了我的码头文件如下:

代码语言:javascript
复制
FROM fishtownanalytics/dbt:0.19.0b1
# Define working directory
WORKDIR /usr/app/profile/
ENV DBT_DIR /usr/app
ENV DBT_PROFILES_DIR /usr/app
# Load ENV Vars
COPY ./dbt ${DBT_DIR}
# Load env variables and install packages
COPY envs.sh envs.sh
RUN . ./envs.sh \
 && dbt deps # Exporting envs to avoid profile not found errors when install deps

但是,当我在docker容器中运行dbt run时,会得到错误:'dbt_utils' is undefined。当我手动运行dbt deps时,它似乎修复了这个问题,dbt run成功了。当我最初安装依赖项时,是否遗漏了一些东西?

更新:换句话说,在构建Docker映像时运行dbt deps似乎没有任何效果。因此,在开始执行工作流之前,我必须手动运行它(例如,当我运行docker时)。当我使用Python映像(不是来自fishtown-analytics的图像)时,不会发生此问题。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2020-12-29 08:22:32

运行dbt deps是准备dbt环境的必要步骤,因此在Dockerfile中调用dbt run之前调用dbt run应该感觉良好。

但是,我认为您的意图是在最后一行的RUN指令中迷失方向:要么将最后一行RUN命令转换为CMD指令,要么您可以先执行RUN dbt depts命令。(有关RUNCMD之间差异的更多细节,请参见RUN)。

而且,值得注意的是: dbt是dbt的托管SaaS构建环境,它也运行dbt deps作为所有dbt构建作业的标准步骤之一--这意味着每次运行时都执行,类似于Docker的CMD

票数 2
EN

Stack Overflow用户

发布于 2021-10-20 18:43:53

因为Dockerfile (渔业分析/dbt:0.19.0b1)中的基本映像包含/usr/app的卷声明,所以在构建过程(参见卷上的Dockerfile参考说明)期间不能修改该目录中的任何内容。因为工作目录使用的是/usr/app,所以由Dockerfile中的RUN dbt deps命令下载和安装的模块将被丢弃,而不是添加到最终映像中。python映像没有相同的卷声明,因此不会导致相同的问题。

为了解决这个问题,您可以将工作目录更改为声明的卷名以外的其他内容(例如/usr/dbt)。

票数 3
EN

Stack Overflow用户

发布于 2020-12-30 23:56:07

@alt-f4

dbt deps 有吗?的基本原理是将包的本地副本安装到project/dbt_modules/目录中。

默认情况下,该目录包含在.gitignore中,因此可以尝试:

  1. dbt_modules中删除.gitignore
  2. 通过dbt deps安装到回购
  3. 把那个版本的模块放到你的回购系统里?

可能有效,但如果您使用该路径,我建议您锁定packages.yml中的每个包。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65468231

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档