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

Docker部署Airflow中新DAG不显示且无导入错误求助

Docker部署Airflow自定义DAG不显示排查方案

  • 检查DAG文件规范

    • 确保文件名以.py结尾,Airflow仅扫描Python格式文件
    • 确认文件内存在可被识别的DAG实例:必须定义非下划线开头的DAG对象(如dag = DAG(...)而非_dag = DAG(...)),且包含必要参数(dag_id、start_date等)
    • 参考有效DAG结构:
      from airflow import DAG
      from airflow.operators.empty import EmptyOperator
      from datetime import datetime
      
      with DAG(
          dag_id="custom_dag_demo",
          start_date=datetime(2024, 1, 1),
          schedule_interval="@daily",
          catchup=False
      ) as dag:
          sample_task = EmptyOperator(task_id="test_task")
      
  • 修正文件权限

    • 官方Airflow镜像默认使用airflow用户(UID=50000),而非root。进入容器执行权限修正:
      chown -R airflow:airflow /opt/airflow/dags
      
    • 同步修正本地./dags目录权限,保证容器可读取:
      chmod -R 755 ./dags
      
  • 触发DAG强制扫描

    • 进入scheduler或webserver容器,执行刷新命令:
      airflow dags rescan
      
    • 或重启scheduler服务(负责定期扫描DAG目录):
      docker compose restart airflow-scheduler
      
  • 排查scheduler日志

    • 查看scheduler日志,寻找未被list-import-errors捕获的异常:
      docker compose logs airflow-scheduler
      
    • 过滤关键日志条目:
      docker compose logs airflow-scheduler | grep -E "dag_file|scan|import"
      
  • 验证挂载路径有效性

    • 替换相对路径为绝对路径,避免挂载解析错误,修改docker-compose.yaml:
      volumes:
        - /your/local/absolute/path/dags:/opt/airflow/dags
      
    • 重启所有服务生效:
      docker compose down && docker compose up -d
      
  • 排除示例DAG干扰

    • 临时关闭示例DAG,验证自定义DAG是否被识别,在docker-compose.yaml中添加环境变量:
      environment:
        - AIRFLOW__CORE__LOAD_EXAMPLES=False
      
    • 重启后执行airflow dags list检查结果

内容的提问来源于stack exchange,提问作者Blaze Tama

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 22:01:06