如何在Azure Web App的Ubuntu 18.04环境中安装Poppler修复运行报错
Ubuntu 18.04 + Azure Web App 环境 poppler 安装解决方案
问题核心说明
Azure App Service 的 Linux 运行环境为无状态容器,手动进入实例安装的依赖会在实例重启、重新部署后消失,必须将 poppler 安装步骤嵌入部署流程中才能永久生效。
具体操作方案
方案1:使用默认 Python 运行时(无自定义Docker)
- 在项目根目录新建启动脚本
startup.sh,写入以下内容:
#!/bin/bash # 安装poppler依赖 apt-get update && apt-get install -y poppler-utils # 替换为你自己的Flask启动命令 gunicorn --bind=0.0.0.0 --timeout 600 app:app
- 在 Azure 门户的 Web App 配置页,找到「启动命令」配置项,填写
./startup.sh后保存。 - 在 Azure DevOps 流水线的部署步骤中,确保
startup.sh被同步到应用根目录。
方案2:使用Docker镜像部署
直接在Dockerfile中加入poppler安装步骤,示例如下:
FROM python:3.8-slim-buster WORKDIR /app COPY requirements.txt . # 安装系统依赖poppler-utils,清理缓存缩小镜像体积 RUN apt-get update && apt-get install -y --no-install-recommends poppler-utils \ && rm -rf /var/lib/apt/lists/* \ && pip install --no-cache-dir -r requirements.txt COPY . . EXPOSE 8000 # 替换为你自己的Flask启动命令 CMD ["gunicorn", "--bind=0.0.0.0:8000", "app:app"]
验证与兼容处理
- 部署完成后进入 Azure Web App 的 SSH 控制台,执行
pdftotext -v确认poppler安装成功。 - 若pdf2image仍识别不到poppler,可在代码中手动指定poppler路径:
from pdf2image import convert_from_path # poppler默认安装路径为/usr/bin pages = convert_from_path('你的文件路径.pdf', poppler_path='/usr/bin')
内容的提问来源于stack exchange,提问作者dough
相关产品推荐
相关产品推荐

