Dockerfile с pip grpcio очень медленно собирается - PullRequest
0 голосов
/ 20 октября 2018

У меня есть 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...

Спасибо.

1 Ответ

0 голосов
/ 04 июня 2019

Была та же проблема, исправлена ​​с помощью virtualenv и многоступенчатого файла Docker:

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

Вот мои требования.txt:

fastapi==0.27.*
grpcio-tools==1.21.*
uvicorn==0.7.*
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...