Windows环境Docker部署Airflow:本地DAG脚本迁移指南
在Windows Docker环境下处理Airflow DAG脚本的两个问题
问题1:是否需要自行创建dags文件夹?
不需要手动创建。官方Apache Airflow Docker镜像在构建时已经默认创建了DAG目录,路径通常为/opt/airflow/dags,且airflow.cfg中dags_folder参数默认指向该路径。如果是通过官方提供的docker-compose.yml启动的Airflow实例,这个目录会自动被容器识别并使用。
如果不确定目录是否存在,可以通过以下命令快速验证:
docker exec <你的Airflow容器名/容器ID> ls /opt/airflow/dags
(容器名/ID可通过docker ps命令查看)
问题2:如何将本地脚本复制到dags文件夹?
分两种场景处理:
场景1:使用Docker Compose启动Airflow(推荐方式)
官方默认的docker-compose.yml已经配置了本地目录与容器DAG目录的挂载,通常格式为:
services: webserver: volumes: - ./dags:/opt/airflow/dags scheduler: volumes: - ./dags:/opt/airflow/dags
只需将本地编写的DAG脚本直接放到当前docker-compose.yml所在目录下的dags文件夹中,容器会自动同步该目录下的文件,无需额外复制命令。
如果你的docker-compose.yml没有配置这个挂载,只需添加上述volumes配置项,然后重启容器:
docker-compose restart webserver scheduler
场景2:手动启动单个Airflow容器
使用docker cp命令直接将本地文件复制到容器内的DAG目录。例如,本地脚本路径为C:\Users\你的用户名\my_dags\test_dag.py,容器名为airflow-webserver,执行以下命令:
docker cp "C:\Users\你的用户名\my_dags\test_dag.py" airflow-webserver:/opt/airflow/dags/
注意:Windows路径若包含空格,需用双引号包裹路径;容器名/ID可通过docker ps查看。
额外提示:查看airflow.cfg的方法
不用安装nano/vim,直接通过cat命令在容器外查看配置文件内容:
docker exec <容器名/ID> cat /opt/airflow/airflow.cfg | grep dags_folder
可以快速定位dags_folder的具体路径,确认目标目录。
内容的提问来源于stack exchange,提问作者emil
相关产品推荐
相关产品推荐

