Den*_*tes 6 ubuntu docker airflow
我想将DAG文件添加到在Ubuntu上的Docker中运行的Airflow中。我使用了以下git存储库,其中包含配置和指向docker image的链接。当我跑步时docker run -d -p 8080:8080 puckel/docker-airflow webserver,一切正常。但是我找不到将DAG安全添加到Airflow的方法。或者,我跑了docker run -d -p 8080:8080 puckel/docker-airflow webserver -v /root/dags:/usr/local/airflow/dags,也没有成功。
我尝试编辑/config/airflow.cfg并将git凭据添加到包含dag的存储库中,但没有成功。此外,假设此文件夹与Docker容器共享,则/dags在中添加一个home/root/dags包含DAG的文件夹。但是也没有成功。
Docker composer文件包含以下卷设置:
webserver:
image: puckel/docker-airflow:1.10.0-2
...
volumes:
- ./dags:/usr/local/airflow/dags
Run Code Online (Sandbox Code Playgroud)
但是,当我./dags在运行Docker容器的文件夹中添加内容时,DAG不会出现在Airflow中。
当DAG在Docker中运行时,如何安全地将DAG添加到Airflow?
添加卷是正确的方法
docker run -d -p 8080:8080 -v /path/to/dags/on/your/local/machine/:/usr/local/airflow/dags puckel/docker-airflow webserver
Run Code Online (Sandbox Code Playgroud)
Mark Nagelberg在以下帖子中描述了完整的解释
默认情况下,在气流配置上有以下行
dags_folder = /usr/local/airflow/dags
Run Code Online (Sandbox Code Playgroud)
这告诉气流从该文件夹加载 dags,在您的情况下,路径引用容器内部。
检查数据库容器是否已启动并正在运行并且airflow initdb已执行。Airflow 使用该元数据数据库来存储 dags 负载。
据我所知,Airflow 调度程序会在每次心跳时加载 dags,因此请确保它有一个合适的执行间隔:
另外,在airflow.cfg中(以秒为单位):
scheduler_heartbeat_sec = 5
Run Code Online (Sandbox Code Playgroud)
检查容器内的气流日志以获得正确的见解也可能会有所帮助。您可以从 shell 运行:
docker logs [container-id | container-name]
Run Code Online (Sandbox Code Playgroud)
希望这能让您对您的问题有所了解。
| 归档时间: |
|
| 查看次数: |
2611 次 |
| 最近记录: |