编程语言
首页 > 编程语言> > Java-Docker无法安装依赖项-Html2Pdf库

Java-Docker无法安装依赖项-Html2Pdf库

作者:互联网

我正在构建将在Docker容器中托管的Java应用程序.此应用程序的一部分是使用此库:

https://github.com/wooio/htmltopdf-java

它采用一个URL并将其转换为PDF文档.但是,通过docker运行.jar文件时,出现错误,提示它缺少本机依赖项:

java.lang.UnsatisfiedLinkError:无法加载库’/tmp/io.woo.htmltopdf/wkhtmltox/0.12.5/libwkhtmltox.so’:本机库(tmp / io.woo.htmltopdf / wkhtmltox / 0.12.5 / libwkhtmltox.所以)在资源路径中找不到

上面链接的最后部分对此进行了说明,它需要这些库才能正确运行:

> libc6(或glibc)libx11 libxext libxrender libstdc libssl1.0
freetype fontconfig

我已经修改了Dockerfile尝试在docker build上安装这些依赖项:

FROM openjdk:8-jdk-alpine

RUN sh -c 'apk update && apk add libssl1.0 libx11 libxext libxrender libstdc++ freetype fontconfig'

COPY server/target/server-0.0.1-SNAPSHOT.jar app.jar

ENTRYPOINT ["java", "-jar", "app.jar"]

我是Docker的新手,但是在github repo问题中找到了此代码段.但是我仍然无法使其正常工作.

您能在这里发现为什么我无法运行该程序的问题吗?

编辑:

我仍然收到错误java.lang.UnsatisfiedLinkError:无法加载库’/tmp/io.woo.htmltopdf/wkhtmltox/0.12.5/libwkhtmltox.so’:本机库(tmp / io.woo.htmltopdf / wkhtmltox /在资源路径中找不到0.12.5 / libwkhtmltox.so)

但是,当SSH进入Docker容器并查看tmp文件夹时,会列出io.woo.htmltopdf-library.路径tmp / io.woo.htmltopdf / wkhtmltox / 0.12.5 / libwkhtmltox.so也存在于Docker容器中.

路径设置可能有问题吗? Java应用程序是否以某种方式没有使用正确的路径?

正在运行的app.jar位于tmp文件夹所在的根文件夹中-因此它应该找到它?

解决方法:

通过使用本机wkhtmltopdf库和wkhtmltopdf java wrapper,我设法解决了此问题.

标签:docker,dockerfile,html2pdf,spring,java
来源: https://codeday.me/bug/20191024/1923010.html