如何在Docker php-fpm Alpine Linux上安装wkhtmltopdf?

9

我使用以下命令在Alpine Docker上安装了Wkhtmltopdf:

apk add --no-cache wkhtmltopdf

但是当我尝试运行wkhtmltopdf时,出现了以下错误:

/usr/bin/wkhtmltopdf  "test.html" "test.pdf"
Cannot mix incompatible Qt library (version 0x50c03) with this library (version 0x50c00)
Aborted (core dumped)

我该怎么修复这个问题?

编辑:

似乎问题在于某个其他软件包安装了不兼容的Qt版本。以下是我的Dockerfile:

RUN apk --no-cache update \
    && apk --no-cache upgrade \
    && apk add --no-cache \
            mysql-client \
            php7-mysqli \
            php7-pdo \
            freetype \
            libpng \
            freetype-dev \
            libpng-dev \
            jpeg-dev \
            libjpeg \
            libjpeg-turbo-dev \
            wget \
            zlib-dev \
            ttf-freefont \
            fontconfig \
            xvfb \
            libxrender-dev \
            gettext \
            gettext-dev \
            libxml2-dev \
            gnu-libiconv-dev \
            autoconf \
            g++ \
            git \
            bash \
            wkhtmltopdf

1
你使用的Alpine版本是什么?我刚测试了3.9.4,它可以正常工作。 - norbjd
1
VERSION_ID=3.9.2。我使用php:7.2-fpm-alpine作为基础镜像。不确定是否可以更新到3.9.4。 - Lau
1
你能否在你的问题中添加这些信息(特别是基础镜像)?我认为问题来自于 php 基础镜像,因为它在纯净的 Alpine (alpine:3.9.2) 上可以工作。 - norbjd
1
我在这里被告知(https://github.com/mileszs/wicked_pdf/issues/605#issuecomment-499601632)这个可以工作:https://github.com/alloylab/Docker-Alpine-wkhtmltopdf - Unixmonkey
1个回答

4

您无法在Alpine 3.15版本之后的存储库中安装wkhtmltopdf https://pkgs.alpinelinux.org/packages?name=wkhtmltopdf&branch=edge&repo=&arch=&maintainer=

如果您想在更新的Alpine(3.17以下)中使用wkhtmltopdf,可以从其他镜像中复制bin文件,例如https://github.com/Surnet/docker-wkhtmltopdf,并安装相关库。

这是Dockerfile:

FROM surnet/alpine-wkhtmltopdf:3.16.2-0.12.6-full as wkhtmltopdf
FROM php:8.2-fpm-alpine3.17 AS app

# wkhtmltopdf install dependencies
RUN apk add --no-cache \
        libstdc++ \
        libx11 \
        libxrender \
        libxext \
        libssl1.1 \
        ca-certificates \
        fontconfig \
        freetype \
        ttf-droid \
        ttf-freefont \
        ttf-liberation \
        # more fonts
        ;
# wkhtmltopdf copy bins from ext image
COPY --from=wkhtmltopdf /bin/wkhtmltopdf /bin/libwkhtmltox.so /bin/


# install php extensions, apache/nginx etc.


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接