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
- 官方Airflow镜像默认使用
触发DAG强制扫描
- 进入scheduler或webserver容器,执行刷新命令:
airflow dags rescan - 或重启scheduler服务(负责定期扫描DAG目录):
docker compose restart airflow-scheduler
- 进入scheduler或webserver容器,执行刷新命令:
排查scheduler日志
- 查看scheduler日志,寻找未被
list-import-errors捕获的异常:docker compose logs airflow-scheduler - 过滤关键日志条目:
docker compose logs airflow-scheduler | grep -E "dag_file|scan|import"
- 查看scheduler日志,寻找未被
验证挂载路径有效性
- 替换相对路径为绝对路径,避免挂载解析错误,修改
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检查结果
- 临时关闭示例DAG,验证自定义DAG是否被识别,在
内容的提问来源于stack exchange,提问作者Blaze Tama
相关产品推荐
相关产品推荐

