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