python - grpcio 构建轮子失败 - docker-compose。蟒蛇项目
问题描述
尝试在主机上构建 docker-compose 容器。grpcio的问题,一直失败。错误:
distutils.errors.CompileError: command '/usr/bin/gcc' failed with exit code 1
ERROR: Failed building wheel for grpcio
有非常大的追溯
有趣的是,在我的笔记本电脑上没有任何问题。容器运行良好。
我试过(语言 - Python):
- 将 pip 升级到最新版本 -没有结果
- 将 pip setuptools 降级到 46.0.0 版本 -没有结果。
Dockerfile:
FROM python:3.9.4-alpine
WORKDIR /usr/src/project
# Create the app user
RUN addgroup -S project && adduser -S project -G project
ENV HOME=/home
ENV APP_HOME=/home/api
RUN mkdir $APP_HOME
RUN mkdir $APP_HOME/static
RUN mkdir $APP_HOME/media
WORKDIR $APP_HOME
RUN chown -R project:project $APP_HOME
RUN apk add --update --no-cache tiff-dev jpeg-dev openjpeg-dev zlib-dev freetype-dev lcms2-dev \
libwebp-dev tcl-dev tk-dev harfbuzz-dev fribidi-dev libimagequant-dev libxcb-dev libpng-dev \
gcc build-base freetype-dev libpng-dev openblas-dev \
postgresql-dev gcc python3-dev musl-dev
RUN pip3 install --upgrade pip
RUN pip3 install setuptools==49.6.0
COPY requirements.txt ./
RUN pip3 install -r requirements.txt
COPY . .
解决方案
我仍然不知道如何解决这个错误。但我已经找到了解决这种情况的方法。我在本地机器上构建 docker 映像,将其推送到 docker hub。在主机上,从 docker 中提取并更改 docker-compose.yml 文件以使用现有图像而不是构建新图像。技术上问题解决了,但我仍然很好奇为什么会出现这个错误。
编辑在主机上重新安装操作系统。现在是 Ubuntu 20.04。没有问题了
推荐阅读
- python - 过滤数据集以仅获取特定类的图像
- ios - iOS Fabric (Crashlytics) 在 RELEASE 构建时显示隐藏和缺失的 dSYMS,但在 DEBUG 构建时有效
- javascript - 在 Angular Bootstrap 的 ngb-tabset 中获取 Select DOM Element 的值
- java - mvn 包忽略 pom.xml 中的存储库
- c# - 在服务器上部署 c# 控制台应用程序而不实际安装 oracle 客户端
- javascript - 是否有兼容 IE11 的解决方法来让 Vue 在 for 循环中为每个项目呈现多个表行?
- angular - 如何从 AngularFireObject 中获取值