没有这样的文件或目录 - 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
,要么更改要挂载到主目录的卷。
我的 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
,要么更改要挂载到主目录的卷。