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

WSL2+Docker部署Airflow后自定义DAG无法加载求助

排查Airflow自定义DAG未在WebUI显示的问题
  • 验证DAG文件语法与可执行性
    进入Airflow scheduler容器,执行以下命令排查语法问题:

    • 直接运行DAG文件:python /opt/airflow/dags/print_hello.py,查看是否有Python语法报错(如导入错误、缩进问题)。
    • 让Airflow尝试加载DAG:airflow dags list | grep print_hello,如果无输出,说明DAG未被识别;若有报错,根据提示修复。
    • 测试DAG可用性:airflow dags test print_hello 2024-07-13,检查是否能正常执行。
  • 检查Scheduler服务状态与日志

    • 查看scheduler运行状态:docker-compose ps airflow-scheduler,确保状态为Up。
    • 查看scheduler日志,搜索DAG相关错误:docker-compose logs airflow-scheduler | grep print_hello,重点关注解析失败、权限或路径相关的报错。
  • 确认挂载卷的配置与同步

    • 检查docker-compose.yml中,是否所有需要读取DAG的服务(scheduler、webserver、worker)都配置了该挂载卷,而非仅airflow-server:
      volumes:
        - /mnt/c/Users/ktsha/airflow_dags:/opt/airflow/dags
      
    • 验证WSL2与容器的文件同步:在WSL2的/mnt/c/Users/ktsha/airflow_dags目录修改print_hello.py(如添加注释),进入容器查看文件是否同步更新。若未同步,执行wsl --shutdown重启WSL2后再试。
  • 调整Airflow解析配置

    • 检查airflow.cfg中的dag_dir_list_interval(默认300秒),若不想等待,可手动触发DAG序列化:airflow dags reserialize。
    • 确认无阻止DAG加载的环境变量,比如docker-compose.yml中是否存在AIRFLOW__CORE__DAG_DISABLE_DEFAULTS: 'true'这类配置。
  • 检查DAG文件内容规范
    确认DAG文件满足以下要求:

    • 定义了有效的DAG实例(如dag = DAG(...)或用with DAG(...) as dag:语法)。
    • DAG的start_date为过去的时间(避免因未来时间导致DAG被自动暂停)。
    • 没有注释掉DAG实例或关键代码块。
  • 排查容器内Airflow进程权限

    • 查看Airflow进程运行用户:ps aux | grep airflow,确认该用户对/opt/airflow/dags目录有访问权限(即使文件权限为777,目录权限可能限制访问)。
    • 检查目录权限:ls -ld /opt/airflow/dags,确保权限为drwxrwxrwx或所属用户组包含Airflow运行用户。

内容的提问来源于stack exchange,提问作者Gs.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 12:05:28