如何安装和运行 wkhtmltopdf Docker 镜像

Posted

技术标签:

【中文标题】如何安装和运行 wkhtmltopdf Docker 镜像【英文标题】:How to install and run wkhtmltopdf Docker image 【发布时间】:2020-10-16 17:52:26 【问题描述】:

当我将构建和运行Spring-boot 应用程序时,我想从DockerfileDockerfile 应用程序安装和运行wkhtmltopdf。 我在Dockerfile 中编写了以下给定脚本来安装 wkhtmltopdf

FROM debian:jessie

RUN apt-get update \
    && apt-get install -y \
        curl \
        libxrender1 \
        libfontconfig \
        libxtst6 \
        xz-utils

RUN curl "https://downloads.wkhtmltopdf.org/0.12/0.12.4/wkhtmltox-0.12.4_linux-generic-amd64.tar.xz" -L -o "wkhtmltopdf.tar.xz"
RUN tar Jxvf wkhtmltopdf.tar.xz
RUN mv wkhtmltox/bin/wkhtmltopdf /usr/local/bin/wkhtmltopdf

ENTRYPOINT ["wkhtmltopdf"]

上述脚本创建了一个 docker 图像,但是如何运行这些图像来测试 wkhtmltopdf 是否工作?或者我们必须从Dockerfile 安装和运行 wkhtmltopdf 的任何其他方法?

【问题讨论】:

【参考方案1】:

也许这个解决方案会有所帮助。 wkhtmltopdf 将被安装到 /usr/bin/wkhtmltopdf

RUN apt-get update \
    && apt-get install -y \
    ...
    wkhtmltopdf \
    ...

【讨论】:

【参考方案2】:

另一个简单的答案:

# Create image based on the official openjdk 8-jre-alpine image from the dockerhub
FROM openjdk:8-jre-alpine

# Install wkhtmltopdf
RUN apk add --no-cache wkhtmltopdf

ENTRYPOINT ["wkhtmltopdf"]

【讨论】:

这为我解决了!它将wkhtmltopdf 安装到/usr/local/bin/wkhtmltopdf。您可以通过 sh-ing 到您的 Docker 容器并运行 wkhtmltopdf --version 来检查它是否正确安装。【参考方案3】:
# (Multi stage Docker can be considered. The appropriate Gradle cache use remains to be solved)

# Create image based on the official openjdk 11-jre-slim image from the dockerhub
FROM debian:jessie

ENV DIR=/usr/local/bin/

# Change directory so that our commands run inside this new directory
WORKDIR $DIR

ENV WKHTML_VERSION 0.12.4

# Builds the wkhtmltopdf download URL based on version number above
ENV DOWNLOAD_URL "https://downloads.wkhtmltopdf.org/0.12/$WKHTML_VERSION/wkhtmltox-$WKHTML_VERSION_linux-generic-amd64.tar.xz" -L -o "wkhtmltopdf.tar.xz"

# Install dependencies
RUN apt-get update && apt-get install -y \
    curl libxrender1 libfontconfig libxtst6 xz-utils

# Download and extract wkhtmltopdf
RUN curl $DOWNLOAD_URL
RUN tar Jxvf wkhtmltopdf.tar.xz
RUN cp wkhtmltox/bin/wkhtmltopdf $DIR

ENTRYPOINT ["wkhtmltopdf"]

【讨论】:

以上是关于如何安装和运行 wkhtmltopdf Docker 镜像的主要内容,如果未能解决你的问题,请参考以下文章

如何在 debian 64 位上正确安装 wkhtmltopdf?

帮助安装 wkhtmltopdf 的静态二进制文件

WkHtmlToPdf 生成 PDF

sh 在CentOS 6.x和7.x上安装wkhtmltopdf 0.12.4

在Centos7.5上安装wkhtmltopdf、中文字体及相关配置

Rails:运行 wkhtmltopdf 时出错——(加载共享库时出错)