Docker - 安装 wkhtmltopdf - 从 0.12.4 更新到 0.12.6 时出错
Docker - install wkhtmltopdf - error updating from 0.12.4 to 0.12.6
我有一个成功安装 wkhtmltopdf v0.12.4 的 dockerfile,但我需要将其更新到更新的版本 (0.12.6),因为它似乎与我所做的其他一些升级不兼容。
这是有效的代码(虽然不兼容)
FROM php:7.3.31-apache
...
RUN wget https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.4/wkhtmltox-0.12.4_linux-generic-amd64.tar.xz --no-check-certificate
RUN tar -xJf wkhtmltox-0.12.4_linux-generic-amd64.tar.xz
RUN cp wkhtmltox/bin/wkhtmltopdf /usr/local/bin/wkhtmltopdf
RUN cp wkhtmltox/bin/wkhtmltoimage /usr/local/bin/wkhtmltoimage
RUN rm -rf wkhtmltox wkhtmltox-0.12.4_linux-generic-amd64.tar.xz
RUN touch .wkhtmltopdf
...
这是无效的代码...
...
RUN wget https://github.com/wkhtmltopdf/wkhtmltopdf/archive/refs/tags/0.12.6.tar.gz --no-check-certificate
RUN tar -xvf wkhtmltopdf-0.12.6.tar.gz
RUN cp wkhtmltopdf-0.12.6/bin/wkhtmltopdf /usr/local/bin/wkhtmltopdf
RUN cp wkhtmltopdf-0.12.6/bin/wkhtmltoimage /usr/local/bin/wkhtmltoimage
RUN rm -rf wkhtmltox wkhtmltopdf-0.12.6.tar.gz
RUN touch .wkhtmltopdf
...
这是我收到的错误消息...
> [ 7/26] RUN cp wkhtmltopdf-0.12.6/bin/wkhtmltopdf /usr/local/bin/wkhtmltopdf:
#10 0.573 cp: cannot stat 'wkhtmltopdf-0.12.6/bin/wkhtmltopdf': No such file or directory
------
executor failed running [/bin/sh -c cp wkhtmltopdf-0.12.6/bin/wkhtmltopdf /usr/local/bin/wkhtmltopdf]: exit code: 1
根据评论,您用于下载软件包 0.12.6 的 url 不包含预编译的二进制文件,仅包含源代码。获得它的一种方法是在 docker 图像构建期间尝试自己编译它。另一种更简单的方法是使用 0.12.6 r1 中的一个 deb 包(建议 here),例如这个 deb 包应该是你需要安装 wkhtmltopdf/wkhtmltoimage 到 php:7.3.31-apache
: wkhtmltox_0.12.6-1.buster_amd64.deb.
它需要安装几个包,这里是下载和安装它的完整命令列表:
apt update
apt install -y wget fontconfig fontconfig-config fonts-dejavu-core libbsd0 \
libfontconfig1 libfontenc1 libfreetype6 libjpeg62-turbo libmd0 libpng16-16 \
libx11-6 libx11-data libxau6 libxcb1 libxdmcp6 libxext6 libxrender1 sensible-utils \
ucf x11-common xfonts-75dpi xfonts-base xfonts-encodings xfonts-utils
wget https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6-1/wkhtmltox_0.12.6-1.buster_amd64.deb
dpkg -i wkhtmltox_0.12.6-1.buster_amd64.deb
这里是验证版本:
root@0c6cf969f847:/var/www/html# wkhtmltopdf -V
wkhtmltopdf 0.12.6 (with patched qt)
root@0c6cf969f847:/var/www/html# wkhtmltoimage -V
wkhtmltoimage 0.12.6 (with patched qt)
以下是从 deb 安装的二进制文件的位置,以备您需要调整过程时使用:
root@0c6cf969f847:/var/www/html# which wkhtmltopdf
/usr/local/bin/wkhtmltopdf
root@0c6cf969f847:/var/www/html# which wkhtmltoimage
/usr/local/bin/wkhtmltoimage
我有一个成功安装 wkhtmltopdf v0.12.4 的 dockerfile,但我需要将其更新到更新的版本 (0.12.6),因为它似乎与我所做的其他一些升级不兼容。
这是有效的代码(虽然不兼容)
FROM php:7.3.31-apache
...
RUN wget https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.4/wkhtmltox-0.12.4_linux-generic-amd64.tar.xz --no-check-certificate
RUN tar -xJf wkhtmltox-0.12.4_linux-generic-amd64.tar.xz
RUN cp wkhtmltox/bin/wkhtmltopdf /usr/local/bin/wkhtmltopdf
RUN cp wkhtmltox/bin/wkhtmltoimage /usr/local/bin/wkhtmltoimage
RUN rm -rf wkhtmltox wkhtmltox-0.12.4_linux-generic-amd64.tar.xz
RUN touch .wkhtmltopdf
...
这是无效的代码...
...
RUN wget https://github.com/wkhtmltopdf/wkhtmltopdf/archive/refs/tags/0.12.6.tar.gz --no-check-certificate
RUN tar -xvf wkhtmltopdf-0.12.6.tar.gz
RUN cp wkhtmltopdf-0.12.6/bin/wkhtmltopdf /usr/local/bin/wkhtmltopdf
RUN cp wkhtmltopdf-0.12.6/bin/wkhtmltoimage /usr/local/bin/wkhtmltoimage
RUN rm -rf wkhtmltox wkhtmltopdf-0.12.6.tar.gz
RUN touch .wkhtmltopdf
...
这是我收到的错误消息...
> [ 7/26] RUN cp wkhtmltopdf-0.12.6/bin/wkhtmltopdf /usr/local/bin/wkhtmltopdf:
#10 0.573 cp: cannot stat 'wkhtmltopdf-0.12.6/bin/wkhtmltopdf': No such file or directory
------
executor failed running [/bin/sh -c cp wkhtmltopdf-0.12.6/bin/wkhtmltopdf /usr/local/bin/wkhtmltopdf]: exit code: 1
根据评论,您用于下载软件包 0.12.6 的 url 不包含预编译的二进制文件,仅包含源代码。获得它的一种方法是在 docker 图像构建期间尝试自己编译它。另一种更简单的方法是使用 0.12.6 r1 中的一个 deb 包(建议 here),例如这个 deb 包应该是你需要安装 wkhtmltopdf/wkhtmltoimage 到 php:7.3.31-apache
: wkhtmltox_0.12.6-1.buster_amd64.deb.
它需要安装几个包,这里是下载和安装它的完整命令列表:
apt update
apt install -y wget fontconfig fontconfig-config fonts-dejavu-core libbsd0 \
libfontconfig1 libfontenc1 libfreetype6 libjpeg62-turbo libmd0 libpng16-16 \
libx11-6 libx11-data libxau6 libxcb1 libxdmcp6 libxext6 libxrender1 sensible-utils \
ucf x11-common xfonts-75dpi xfonts-base xfonts-encodings xfonts-utils
wget https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6-1/wkhtmltox_0.12.6-1.buster_amd64.deb
dpkg -i wkhtmltox_0.12.6-1.buster_amd64.deb
这里是验证版本:
root@0c6cf969f847:/var/www/html# wkhtmltopdf -V
wkhtmltopdf 0.12.6 (with patched qt)
root@0c6cf969f847:/var/www/html# wkhtmltoimage -V
wkhtmltoimage 0.12.6 (with patched qt)
以下是从 deb 安装的二进制文件的位置,以备您需要调整过程时使用:
root@0c6cf969f847:/var/www/html# which wkhtmltopdf
/usr/local/bin/wkhtmltopdf
root@0c6cf969f847:/var/www/html# which wkhtmltoimage
/usr/local/bin/wkhtmltoimage