【发布时间】:2020-12-27 17:04:01
【问题描述】:
我是 DBT 新手,目前正在尝试构建一个 Docker 容器,我可以在其中直接运行 DBT 命令。我有一个导出环境变量 (envs.sh) 的文件,如下所示:
export DB_HOST="secret"
export DB_PWD="evenabiggersecret"
我的packages.yml 看起来像:
packages:
- package: fishtown-analytics/dbt_utils
version: 0.6.2
我的 docker 文件结构如下:
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 run 时)才能开始我的工作流程。当我使用 Python 图像(不是来自 fishtown-analytics 的图像)时,不会发生此问题
【问题讨论】: