【问题标题】:Docker build taking too long when installing grpcio via pip通过 pip 安装 grpcio 时 Docker 构建时间过长
【发布时间】:2019-03-25 01:41:07
【问题描述】:

我有一个 Dockerfile,它通过 pip 安装一些包。 其中一些需要grpcio,构建这部分只需要几分钟。

有人有加快这部分速度的提示吗?

Installing collected packages: python-dateutil, azure-common, azure-nspkg, azure-storage, jmespath, docutils, botocore, s3transfer, boto3, smmap2, gitdb2, GitPython, grpcio, protobuf, googleapis-common-protos, grpc-google-iam-v1, pytz, google-api-core, google-cloud-pubsub
Found existing installation: python-dateutil 2.7.3
  Uninstalling python-dateutil-2.7.3:
    Successfully uninstalled python-dateutil-2.7.3
Running setup.py install for grpcio: started
Running setup.py install for grpcio: still running...
Running setup.py install for grpcio: still running...
Running setup.py install for grpcio: still running...

谢谢。

【问题讨论】:

标签: python docker pip dockerfile grpc


【解决方案1】:

我也遇到了同样的问题,升级pip解决了:

$ pip3 install --upgrade pip

这里是 grpc 项目的一位维护者的话:

【讨论】:

  • 你成就了我的一天!
  • 谢谢兄弟。事实上,升级 pip 对于摆脱这个问题至关重要。不知道 grpcio 和 Docker 可能出了什么问题。
  • 仍然没有用于 grpcio 的 aarch64 (armv8) 轮子,因此这不适用于大多数较新的 arm 处理器
  • 为什么没有将其标记为答案??
【解决方案2】:

遇到了同样的问题,通过使用 virtualenv 和多阶段 dockerfile 修复它:

FROM python:3.7-slim as base

# ---- compile image -----------------------------------------------
FROM base AS compile-image
RUN apt-get update \
  && apt-get install -y --no-install-recommends \
  build-essential \
  gcc

RUN python -m venv /app/env
ENV PATH="/app/env/bin:$PATH"

COPY requirements.txt .
RUN pip install --upgrade pip
# pip install is fast here (while slow without the venv) :
RUN pip install -r requirements.txt

# ---- build image -----------------------------------------------
FROM base AS build-image
COPY --from=compile-image /app/env /app/env

# Make sure we use the virtualenv:
ENV PATH="/app/env/bin:$PATH"
COPY . /app
WORKDIR /app

这是我的 requirements.txt :

fastapi==0.27.*
grpcio-tools==1.21.*
uvicorn==0.7.*

【讨论】:

  • 我很好奇为什么 virtualenv 会在这里有所作为。
猜你喜欢
  • 2022-06-13
  • 2019-10-14
  • 1970-01-01
  • 1970-01-01
  • 2014-05-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多