首页 > 解决方案 > docker 气流配置问题(puckel/docker)

问题描述

从这里拉出 docker 映像后,我在附加 shell 后意识到教程文件不在airflow.cg 中指定的 dag 文件夹中(dags_folder = /usr/local/airflow/dags,文件夹 dags 不存在)。教程文件实际上是在这里找到的:

/usr/local/lib/python3.6/site-packages/airflow/example_dags/tutorial.py

此外,运行气流 list_dag 会引发有关未安装 kubernetes 的警告,并且我缺少为 vim 等应用程序运行 apt-get 以编辑 py 文件,甚至运行 ps 以查看进程的权限。

由于我是 docker 和气流的新手,在构建时我需要在 dockerfile 中更改什么吗?

注意:我正在使用 Docker for windows 来构建 linux 映像。

标签: pythondockerairflow

解决方案


关于 Kubernetes 的警告来自这样一个事实,即airflow[kubernetes]Puckel 的 Dockerfile 默认没有安装该模块,但除非您想使用 Airflow 的 KubernetesPodOperator,否则不必担心。

当您进入容器时,您无权编辑 python 模块也是正常的,因为您以用户身份airflow而不是 root 身份登录,并且该用户只有 $AIRFLOW_HOME 目录的写入权限。一般来说,从容器内部编辑文件是不合时宜的,你应该尽量避免这种情况。

如果我猜对了,你想要做的就是从airflow-docker 加载你自己的dag。如果是这种情况,您可以运行以下内容:

docker run -d -p 8080:8080 -v <local_path_to_your_dags>:/usr/local/airflow/dags  puckel/docker-airflow webserver

在这里,您将本地文件夹从您的机器安装到容器中的 HOME/dags 文件夹,该文件夹用于加载 dags。


推荐阅读