使用Dockerfile安装Apache Airflow Hive Provider时遇GCC权限拒绝问题
解决Dockerfile中安装apache-airflow-providers-apache-hive时的GCC权限问题
apache/airflow官方镜像默认使用airflow普通用户运行,安装需要编译的Python包(比如apache-airflow-providers-apache-hive依赖的部分组件)时,普通用户没有足够权限执行GCC编译操作,就会触发权限拒绝错误。
直接修改Dockerfile,切换到root用户完成安装后再切回airflow用户即可解决:
FROM apache/airflow:2.4.2 USER root # 合并pip命令减少镜像层数,同时用root权限完成安装 RUN pip install gspread \ oauth2client \ PyHive \ python-dev-tools \ essentials \ apache-airflow-providers-apache-hive # 切回airflow用户,保持镜像原有运行环境的安全性 USER airflow
如果单独针对最后一个包处理,也可以只在安装它时切换root,但合并所有pip命令更符合Docker镜像构建的最佳实践,能减少镜像的层数。
内容的提问来源于stack exchange,提问作者Jorge Pacheco
相关产品推荐
相关产品推荐

