python - 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 映像。
解决方案
关于 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。
推荐阅读
- python - Python多类继承:调用子类的变量
- python - 如何在 Python 类中删除 self 的隐式传递?
- c# - 如何用正号(+)和美元(符号)格式化用逗号分隔的数字?
- python - 如何修复IndexError:python中的字符串索引超出范围
- java - 无法运行 java 文件(修复类路径时遇到问题)
- python-3.x - 如何修复:提交 Python 代码时,预期为 2 输出,但在 PASTA 上得到 0
- lightbox2 - 如何在 Lightbox v2.10.0 中链接 Youtube 视频
- docker - mesos + marathon组合中服务ip变化的解决方法能告诉我吗?
- java - 在杰克逊序列化后避免列表的类型信息
- angular - 异步修改数组 observable 中的每一项,并返回修改后的 observable