标签:docker dockerfile html2pdf spring java
我正在构建将在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
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。