如何在Docker部署的Apache Airflow中自定义airflow.cfg配置
Apache Airflow Docker部署后自定义airflow.cfg不生效的解决办法
检查挂载配置的正确性
确认docker-compose.yaml中取消注释的挂载行路径无误,比如确保是./config/airflow.cfg:/opt/airflow/airflow.cfg,主机端的./config目录必须存在且包含自定义的airflow.cfg。
用以下命令验证挂载是否成功:- 查看容器状态:
docker-compose ps,确保容器无启动报错 - 进入容器查看配置文件:
docker exec -it <airflow-webserver-container-id> cat /opt/airflow/airflow.cfg,检查load_example值是否为False。如果显示的还是默认值,说明挂载路径有误或主机目录权限不足(确保主机config目录对容器有可读权限)。
- 查看容器状态:
清理旧元数据与容器
示例DAG是Airflow初始化数据库时写入的,若你之前以默认配置启动过Airflow,元数据中已存在这些DAG,修改配置不会自动删除它们。执行以下步骤重置:- 停止并删除容器及关联卷:
docker-compose down -v - 清理主机端的
logs等Airflow生成的目录(保留config目录即可) - 确认
airflow.cfg中load_example=False - 重新启动容器:
docker-compose up -d
- 停止并删除容器及关联卷:
检查环境变量优先级
Airflow Docker镜像中,环境变量的优先级高于airflow.cfg文件。如果docker-compose.yaml的environment部分设置了AIRFLOW__CORE__LOAD_EXAMPLES=true,会直接覆盖配置文件的设置。检查该部分,将其改为AIRFLOW__CORE__LOAD_EXAMPLES=false或直接删除该行。验证配置加载结果
容器启动后,进入webserver容器执行airflow config get-value core load_examples,确认输出为False。若仍为True,检查容器内$AIRFLOW_HOME环境变量值是否为/opt/airflow,确保加载的是你挂载的配置文件。
内容的提问来源于stack exchange,提问作者Alexey
相关产品推荐
相关产品推荐

