apach/spark-py docker image ERROR: Could not install packages due to an OSError: [Errno 13] Permission denied

问题描述 投票:0回答:1

我正在尝试通过 apache/spark-py 在 docker 中运行我的 pyspark 测试套件。

但是当我尝试通过交互式 shell 安装依赖项时,出现以下错误:

% docker run -it apache/spark-py:v3.3.1 sh
...
sh-5.1$ python3 -m pip install --upgrade pip setuptools wheel
...
Installing collected packages: wheel, setuptools, pip
ERROR: Could not install packages due to an OSError: [Errno 13] Permission denied: '/.local'
Check the permissions.

我尝试附加

--user
并得到相同的结果。我尝试使用
sudo
但图像没有安装它。我可以创建自己的自定义图像,但我试图“按原样”使用官方图像以避免必须构建和发布它,以便我可以在 Gitlab CI 中运行它。我可以这样做,但是为什么我不能只使用发布的图像来安装依赖项来运行我构建的 spark 命令是没有意义的?

docker apache-spark pyspark
1个回答
0
投票

好吧,首先我注意到标签的图像层以:

结尾
USER 185

Dockerfile
中的其他命令在
USER 0
之后运行。

所以我跑了:

$ cat /etc/passw

root:x:0:0:root:/root:/bin/bash
...
185:x:185:0:anonymous uid:/opt/spark:/bin/false

查看

docker run
命令的文档,您可以指定用户使用
--user
参数运行特定命令。所以当我启动包含使用:

$ docker run -it --user 0 apache/spark-py:v3.3.1 sh
...
# whoami
root

现在

python3 -m pip install ...
有效。现在我只需要弄清楚如何在 Gitlab 中指定
--user

© www.soinside.com 2019 - 2024. All rights reserved.