我在airflow Dockerfile中尝试pip inatall
需要root权限的包时遇到错误。
软件包为python-lzo
。巨蟒3.7,气流2.3.0。
我得到的错误是一个已知的:“尝试以root身份运行pip”,并承认这是一个已知的问题/事实,根据这里的气流文档。
我试着设置环境变量as this solution声明,它仍然不工作。
下面的示例将PyPI中的lxml python包添加到映像中。当通过pip添加包时,你需要使用airflow用户而不是root。尝试以root身份安装pip软件包将失败,并显示相应的错误消息。
他们说你必须以“airflow”用户而不是“root”用户的身份运行pip。
但是,我需要的包名为“python-lzo”,它需要运行gcc,而gcc只能以root身份运行。
如果Airflow需要root权限的gcc,有没有其他方法可以在Airflow上安装python-lzo?
有些人建议我编译python-lzo库并在本地计算机上运行gcc,然后以某种方式将其上传到Dockerfile,但我在那里很迷茫,因为我不明白这是怎么可能的,当在本地编译它时,这意味着它依赖于我的操作系统,我希望DAG在Linux上运行(我有Windows)。
dockerfile:
From artifactory.whatever
Copy requirements.txt
Copy pip.ini ~/.pip/pip.conf
Copy mylibrary.whl
Env PIP_CONFIG_FILE ~/.pip/pip.conf
USER root
Run pip install mylibrary
mylibrary
是我使用poetry
编译的.whl,在需求中有python-lzo
库。
1条答案
按热度按时间b09cbbtk1#
您可以将
gcc
和liblzo2-dev
安装为root,然后将pip安装为airflow