没有这样的文件或目录 - Airflow

No such file or directory - Airflow

我的 airflow 项目结构如下

airflow
    |
    |----dags
    |      |----dag.py
    |
    |----dbt-redshift
             |----models
                   |----model.sql

我已将 dbt-redshift 目录包含在 volumes 部分作为

volumes:
  -./dbt-redshift:/opt/airflow/dbt-redshift

我正在尝试使用 bash 运算符运行 DAG 中的 dbt

 dbt_task = BashOperator(task_id='dbt', bash_command="cd ~/dbt-redshift && dbt run", dag=dag)

但是当我执行 DAG 时出现错误

cd: /home/***/dbt-redshift no such file or directory

我不确定我是否理解这些目录在 airflow 项目中的位置。

您正在将容器内的卷安装到 /opt/airflow/dbt-redshift,但 BashOperator 引用 ~/dbt-redshit~ 解析为 /home/airflow

(假设您使用的是 apache/airflow 图片)

要么更改 BashOperator 使用的命令以引用 /opt/airflow/dbt-redshift,要么更改要挂载到主目录的卷。