在bitnami/deepspeed:0.14.0 Docker镜像中使用uv安装包时失败,显示'uv: command not found
如果我使用以下的 Dockerfile
:
FROM python:3.11-bullseye
ENV APP_HOME /app
WORKDIR $APP_HOME
COPY requirements.txt /app
RUN pip install uv && uv pip install --system --no-cache -r requirements.txt
那么 requirements.txt
中的包就能正常安装。但是如果我把第一行改成
FROM bitnami/deepspeed:0.14.0
那么我就会突然遇到错误
#8 [4/4] RUN pip install uv && uv pip install --system --no-cache -r requirements.txt
#8 0.629 Defaulting to user installation because normal site-packages is not writeable
#8 0.807 Collecting uv
#8 0.867 Downloading uv-0.1.18-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (23 kB)
#8 0.896 Downloading uv-0.1.18-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (11.0 MB)
#8 2.013 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 11.0/11.0 MB 9.9 MB/s eta 0:00:00
#8 2.947 Installing collected packages: uv
#8 3.209 Successfully installed uv-0.1.18
#8 3.421 /bin/bash: line 1: uv: command not found
#8 ERROR: process "/bin/bash -o errexit -o nounset -o pipefail -c pip install uv && uv pip install --system --no-cache -r requirements.txt" did not complete successfully: exit code: 127
------
> [4/4] RUN pip install uv && uv pip install --system --no-cache -r requirements.txt:
0.629 Defaulting to user installation because normal site-packages is not writeable
0.807 Collecting uv
0.867 Downloading uv-0.1.18-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (23 kB)
0.896 Downloading uv-0.1.18-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (11.0 MB)
2.947 Installing collected packages: uv
3.209 Successfully installed uv-0.1.18
3.421 /bin/bash: line 1: uv: command not found
------
Dockerfile.mini:11
--------------------
9 |
10 | # Install dependency packages
11 | >>> RUN pip install uv && uv pip install --system --no-cache -r requirements.txt
--------------------
ERROR: failed to solve: process "/bin/bash -o errexit -o nounset -o pipefail -c pip install uv && uv pip install --system --no-cache -r requirements.txt"
补充:
如果我以管理员身份安装这些 Python 包,就能正常工作:
FROM bitnami/deepspeed:0.14.0
USER root
ENV APP_HOME /app
WORKDIR $APP_HOME
COPY requirements.txt /app
RUN pip install uv && uv pip install --python $(which python) --no-cache -r requirements.txt
但是有没有办法使用 uv
在 bitnami/deepspeed:0.14.0
的 Docker 镜像中,以 deepspeed
用户的身份来安装 Python 包呢?
1 个回答
0
你安装的 uv
程序没有在系统的路径中,所以系统找不到它。因为它不是一个普通的 Python 脚本,所以 pip
也不会给你提示。
你可以手动去查找 .local
目录下安装的 uv
:
RUN pip install uv && ~/.local/bin/uv pip install --system --no-cache -r requirements.txt
需要注意的是,使用 --system
可能会失败,因为这个镜像显然不是以 root
用户身份运行这些命令的。
(就我个人而言,我可能不会使用 bitnami/deepspeed
这个镜像。)