You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于Azure Linux镜像构建Python应用时pip安装在Ubuntu主机失败

Docker构建Python应用时pip报错:RuntimeError: can't start new thread

我们使用mcr.microsoft.com/azurelinux/base/python:3.12.3-4-azl3.0.20241101-amd64作为基础镜像构建Python应用。在Ubuntu 18.04或22.04主机执行docker build时,Dockerfile中的pip命令出现如下错误,但在RHEL 8主机上构建可正常运行。

错误信息

Downloading pygments-2.18.0-py3-none-any.whl.metadata (2.5 kB)
Collecting mdurl~=0.1 (from markdown-it-py>=2.2.0->rich>=10.11.0->typer>=0.12.3->fastapi-cli>=0.0.5->fastapi-cli[standard]>=0.0.5; extra == "standard"->fastapi[standard]==0.115.5->-r requirements.txt (line 1))
  Downloading mdurl-0.1.2-py3-none-any.whl.metadata (1.6 kB)
Downloading fastapi-0.115.5-py3-none-any.whl (94 kB)
Downloading httpx-0.27.2-py3-none-any.whl (76 kB)
Downloading langchain-0.3.7-py3-none-any.whl (1.0 MB)
ERROR: Exception:
Traceback (most recent call last):
  File "/usr/lib/python3.12/site-packages/pip/_internal/cli/base_command.py", line 105, in _run_wrapper
    status = _inner_run()
             ^^^^^^^^^^^^
  File "/usr/lib/python3.12/site-packages/pip/_internal/cli/base_command.py", line 96, in _inner_run
    return self.run(options, args)
           ^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/site-packages/pip/_internal/cli/req_command.py", line 67, in wrapper
    return func(self, options, args)
           ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/site-packages/pip/_internal/commands/install.py", line 379, in run
    requirement_set = resolver.resolve(
                      ^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/resolver.py", line 179, in resolve
    self.factory.preparer.prepare_linked_requirements_more(reqs)
  File "/usr/lib/python3.12/site-packages/pip/_internal/operations/prepare.py", line 554, in prepare_linked_requirements_more
    self._complete_partial_requirements(
  File "/usr/lib/python3.12/site-packages/pip/_internal/operations/prepare.py", line 469, in _complete_partial_requirements
    for link, (filepath, _) in batch_download:
  File "/usr/lib/python3.12/site-packages/pip/_internal/network/download.py", line 184, in __call__
    for chunk in chunks:
  File "/usr/lib/python3.12/site-packages/pip/_internal/cli/progress_bars.py", line 54, in _rich_progress_bar
    with progress:
  File "/usr/lib/python3.12/site-packages/pip/_vendor/rich/progress.py", line 1168, in __enter__
    self.start()
  File "/usr/lib/python3.12/site-packages/pip/_vendor/rich/progress.py", line 1159, in start
    self.live.start(refresh=True)
  File "/usr/lib/python3.12/site-packages/pip/_vendor/rich/live.py", line 132, in start
    self._refresh_thread.start()
  File "/usr/lib/python3.12/threading.py", line 992, in start
    _start_new_thread(self._bootstrap, ())
RuntimeError: can't start new thread
The command '/bin/sh -c pip3 install --no-cache-dir -r requirements.txt' returned a non-zero code: 2

requirements.txt内容

fastapi[standard]==0.115.5
httpx==0.27.2
langchain==0.3.7
langchain-core==0.3.19
langchain_community==0.3.2
langchain-openai==0.2.9
langchain-text-splitters==0.3.2
logger==1.4
openai==1.54.5
pandas==2.2.3
pydantic==2.9.2
pydantic_core==2.23.4
pytest==8.3.3
pytest-cov==6.0.0
pytest-integration-mark==0.2.0
pytest-mock==3.14.0
python-dotenv==1.0.1
requests==2.32.3
rank-bm25==0.2.2
six==1.16.0

Dockerfile内容

FROM mcr.microsoft.com/azurelinux/base/python:3.12.3-4-azl3.0.20241101-amd64
WORKDIR /app

COPY requirements.txt /app
COPY ./pip.conf ~/.pip/

RUN pip3 install --no-cache-dir -r requirements.txt
..............
.............

解决办法

  1. 修改pip install命令禁用进度条
    将Dockerfile中的RUN命令改为:

    RUN pip3 install --no-cache-dir --no-progress-bar -r requirements.txt
    

    该参数会阻止pip使用rich进度条,避免创建新线程的操作,直接绕过错误。

  2. 通过pip配置全局关闭进度条
    在pip.conf中添加以下配置:

    [global]
    progress-bar = off
    

    确保COPY命令正确将配置文件复制到容器内的~/.pip/路径。

  3. 检查主机线程资源限制
    在Ubuntu主机执行ulimit -u查看用户最大进程数(线程包含在内),如果数值过低,可临时调整:

    ulimit -u 4096
    

    也可修改/etc/security/limits.conf文件永久调整,但此方法通常不是必需的,默认限制足以应对pip构建场景。

内容的提问来源于stack exchange,提问作者Vowneee

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 22:47:14