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

部署Flask-PaddleOCR至Google Cloud Run遇libssl依赖错误求助

解决Flask-PaddleOCR部署到Google Cloud Run的libssl.so.1.1缺失问题

核心原因分析

libssl.so.1.1是OpenSSL 1.1版本的核心库,Python 3.8-slim-buster镜像基于Debian 10(buster),本应默认提供该库,但你的Dockerfile存在两个关键问题:

  • 系统依赖安装顺序错误:先安装Python包(Paddle系列)再安装系统库,导致Paddle安装时无法正确链接到libssl
  • 缺少PaddleOCR运行必需的其他系统依赖,间接引发依赖加载失败

修正后的Dockerfile配置

FROM python:3.8-slim-buster

# 优先安装所有系统依赖,包括libssl1.1和PaddleOCR必需的底层库
RUN apt-get update && apt-get install -y --no-install-recommends \
    libssl1.1 \
    libglib2.0-0 \
    libsm6 \
    libxrender1 \
    libxext6 \
    openssl \
    && rm -rf /var/lib/apt/lists/*

# 复制应用代码
COPY . ./

# 安装Python依赖,使用--no-cache-dir减少镜像体积
RUN pip install --no-cache-dir flask gunicorn
RUN pip install --no-cache-dir paddlepaddle==2.4.2
RUN pip install --no-cache-dir paddleocr pillow

# 启动服务
CMD exec gunicorn --bind :$PORT --workers 1 --threads 8 app:app

关键优化点说明

  • 调整安装顺序:先完成系统级依赖安装,确保Paddle系列包在安装过程中能正确识别并链接到libssl.so.1.1
  • 补充PaddleOCR必需库:libglib2.0-0、libsm6等是OpenCV(PaddleOCR的核心依赖)的运行必需库,缺失会导致依赖加载链断裂
  • 清理缓存:通过rm -rf /var/lib/apt/lists/*和--no-cache-dir减小镜像体积,避免Cloud Run部署时的冗余问题
  • 明确指定libssl1.1:即使镜像默认包含,显式安装可确保版本匹配,避免潜在的依赖冲突

额外排查步骤

  1. 本地验证镜像:
    docker build -t flask-paddleocr .
    docker run -p 8080:8080 -e PORT=8080 flask-paddleocr
    
    访问http://localhost:8080确认应用正常运行,排除代码本身问题
  2. 检查Cloud Run资源配置:PaddleOCR运行建议分配至少1CPU、2GB内存,资源不足也可能导致服务启动失败
  3. 查看完整日志:在Cloud Run控制台的"日志"面板中查看详细错误堆栈,确认是否存在其他依赖缺失情况

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 18:25:13