You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Apache Airflow Docker环境下BashOperator DAG启动失败求助

问题排查与解决

核心原因

你的DAG代码里使用了datetime(2025, 4, 1)但没有导入datetime模块,Airflow在解析DAG文件时遇到语法错误,导致无法识别这个DAG,所以抛出"DAG not found"的错误。

修复步骤

  1. 修正DAG代码,在开头添加datetime导入:
from airflow import DAG
from airflow.operators.bash import BashOperator
from datetime import datetime  # 新增这一行

with DAG(
    dag_id="bash_operator_dag",
    start_date=datetime(2025, 4, 1),
    catchup=False,
    tags=["test"]
) as dag:
    run_bash = BashOperator(
        task_id="run_bash",
        bash_command="echo chris"
    )
    process = BashOperator(
        task_id="process",
        bash_command="echo chris"
    )
    run_bash >> process
  1. 验证DAG文件语法:
    在本地执行python chris_2.py,如果没有报错,说明语法没问题。如果有报错,根据提示修复(比如拼写错误、缺少依赖等)。

  2. 检查Docker挂载权限:
    确保你的DAG文件所在目录被正确挂载到Airflow容器的/opt/airflow/dags目录,且文件权限允许容器读取(可以执行chmod -R 755 ./dags调整权限)。

额外提示

Airflow的"DAG not found"错误很多时候是因为DAG文件存在语法错误,导致解析失败,而不是真的找不到文件。可以查看Airflow scheduler或webserver的日志,里面会有更详细的语法错误提示。

内容的提问来源于stack exchange,提问作者Christian van R

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 18:12:07