在bitnami/deepspeed:0.14.0 Docker镜像中使用uv安装包时失败,显示'uv: command not found

-1 投票
1 回答
117 浏览
提问于 2025-04-14 16:23

如果我使用以下的 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

但是有没有办法使用 uvbitnami/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 这个镜像。)

撰写回答