在php:8-fpm-alpine镜像中安装WKHTMLTOPDF失败如何解决?
wkhtmltopdf安装问题解决方案
问题原因
你使用的php:8-fpm-alpine镜像默认基于Alpine 3.15及以上版本,该版本开始Alpine官方源已经移除了wkhtmltopdf软件包,原因是其依赖的Qt5 WebKit组件停止维护,存在未修复的安全漏洞,因此直接执行apk add wkhtmltopdf会提示找不到对应包。
最简可行方案(推荐)
直接安装wkhtmltopdf官方提供的静态编译版本,无需依赖额外系统组件,适配所有Alpine版本,Dockerfile示例如下:
FROM php:8-fpm-alpine # 安装基础依赖 RUN apk add --no-cache \ xvfb \ libfontconfig \ libxrender1 \ libxext6 \ ca-certificates \ && update-ca-certificates # 下载对应Alpine版本、CPU架构的wkhtmltopdf静态编译apk包后本地安装 RUN wget <wkhtmltopdf官方静态apk包下载地址> \ && apk add --no-cache --allow-untrusted <下载的apk文件名> \ && rm -f <下载的apk文件名> # 验证安装是否成功 RUN wkhtmltopdf --version
备选方案(仅内网环境推荐)
如果不想额外下载安装包,可以选择使用基于Alpine 3.14的PHP8镜像,该版本Alpine官方源仍保留wkhtmltopdf包,直接安装即可:
# 注意该基础镜像的Alpine 3.14版本已停止官方维护,公网环境不建议使用 FROM php:8.0-fpm-alpine3.14 RUN apk add --no-cache xvfb libfontconfig wkhtmltopdf
常用使用说明
如果运行时出现显示相关报错,可通过xvfb包裹执行命令,示例:xvfb-run wkhtmltopdf 待转换的HTML地址 输出PDF路径
内容的提问来源于stack exchange,提问作者one2three4
相关产品推荐
相关产品推荐

