wkhtmltopdf with php:8-fpm-alpine



我有一个现有的php:8-fpm-alpine Dockerfile,我需要添加WKHTMLTOPDF包。这可能吗。我尝试使用以下dockerfile,但我得到以下错误日志:

Dockerfile。。。

FROM php:8-fpm-alpine
...
RUN apk add xvfb libfontconfig wkhtmltopdf

错误:

ERROR [ 8/13] RUN apk add --no-cache wkhtmltopdf                                                                                                   2.1s
[ 8/13] RUN apk add --no-cache wkhtmltopdf:
#12 0.567 fetch https://dl-cdn.alpinelinux.org/alpine/v3.15/main/x86_64/APKINDEX.tar.gz
#12 1.097 fetch https://dl-cdn.alpinelinux.org/alpine/v3.15/community/x86_64/APKINDEX.tar.gz
#12 2.001 ERROR: unable to select packages:
#12 2.034   wkhtmltopdf (no such package):
#12 2.034     required by: world[wkhtmltopdf]
executor failed running [/bin/sh -c apk add --no-cache wkhtmltopdf]: exit code: 1
ERROR: Service 'php' failed to build : Build failed

我尝试包含以下存储库中的内容,但我认为这对一个包来说太多了,而且在构建过程中会中断:https://github.com/alloylab/Docker-Alpine-wkhtmltopdf

如有任何帮助,我们将不胜感激。

我在尝试更新到php:8.1.9-fpm-alpine3.16时遇到了同样的问题

为了实现这一点,我添加了一个链接到wkhtmltopdf的社区3.14存储库。事实证明,它也有一些来自主存储库的依赖项:

ERROR: unable to select packages:
so:libicui18n.so.67 (no such package):
required by: qt5-qtwebkit-5.212.0_alpha4-r14[so:libicui18n.so.67]
so:libicuuc.so.67 (no such package):
required by: qt5-qtwebkit-5.212.0_alpha4-r14[so:libicuuc.so.67]

所以你需要添加

# Install packages not yet updated for the current alpine version TODO remove when no longer needed
RUN echo 'https://dl-cdn.alpinelinux.org/alpine/v3.14/community' >> /etc/apk/repositories
RUN echo 'https://dl-cdn.alpinelinux.org/alpine/v3.14/main' >> /etc/apk/repositories
RUN apk add --no-cache wkhtmltopdf

我在php:7.4-fpm-alpine图像方面遇到了类似的问题。

wkhtmltopdf似乎在Alpine 3.15版本中缺失,但在3.14版本中可用。

尝试更改

FROM php:8-fpm-alpine

FROM php:8-fpm-alpine3.14

我使用surnet/alpine wkhtmltopdf图像的现代方法

目标:

  • 使用最新的高山(此处为3.17(
  • 使用最新的php(此处为8.2(
  • 无论如何都有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.
  1. 您可以控制alpine-wkhtmltopdf图像的版本
  2. 您可以控制php和alpine的版本
  3. 如果需要,您可以下载更多字体

部分基于手动

最新更新