docker wkhtmltopdf与php:8-fpm-阿尔卑斯山

lxkprmvk  于 2022-12-18  发布在  Docker
关注(0)|答案(3)|浏览(115)

我有一个已经存在的php:8-fpm-alpine Dockerfile,我需要添加WKHTMLTOPDF package.这甚至是可能的吗?我尝试使用下面的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

我试着包含以下存储库中的内容,但我认为它的方式太多的工作1包,它在构建过程中中断:https://github.com/alloylab/Docker-Alpine-wkhtmltopdf
如果你能帮忙的话,我将不胜感激。

uttx8gqw

uttx8gqw1#

我在使用php:7.4-fpm-alpine图像时遇到过类似的问题。
Alpine v.3.15中似乎缺少wkhtmltopdf,但v.3.14中提供了它。
试着改变

FROM php:8-fpm-alpine

FROM php:8-fpm-alpine3.14
ar5n3qh5

ar5n3qh52#

我在尝试更新到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
r3i60tvu

r3i60tvu3#

我使用surnet/alpine-wkhtmltopdf图像的现代方法
目标:

  • 使用最新的alpine(此处为3.17)
  • 使用最新的php(此处为8.2)
  • 无论如何都要有wkhtmltopdf
  • 不包括旧存储库

停靠文件:

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映像的版本
1.你可以控制php和alpine的版本
1.如果需要,您可以下载更多字体
部分基于手册

相关问题