【问题标题】:How to resolve libwkhtmltox.so reference in .Net AWS Lambda Docker image如何解析 .Net AWS Lambda Docker 映像中的 libwkhtmltox.so 参考
【发布时间】:2022-01-28 05:01:25
【问题描述】:

我正在将 .Net 2.1 lambda 转换为 3.1(或更高版本)并努力解决将 html 转换为 pdf 的引用。我目前正在使用来自此解决方案https://github.com/HakanL/WkHtmlToPdf-DotNet 的代码,它可以在容器中运行控制台应用程序。 lambda 包正在引入打破这种逻辑的问题。在此 WkHtmlToPdf-DotNet 项目中使用新的 lambda 解决方案,部署的图像失败并出现此异常

GetModule WkHtmlModuleLinux64 异常 System.DllNotFoundException:无法加载共享库“/var/task/runtimes/linux-x64/native/libwkhtmltox.so”或其依赖项之一。为了帮助诊断加载问题,请考虑设置 LD_DEBUG 环境变量:libjpeg.so.62: cannot open shared object file: No such file or directory

我正在使用在异常之前显示的 LD_DEBUG 环境变量:file=runtimes/linux-x86/native/libwkhtmltox [0];由/var/lang/bin/shared/Microsoft.NETCore.App/5.0.12/libcoreclr.so动态加载[0]

我还向日志输出了对产生此行的文件的搜索:
GetFilePath res: /var/task/runtimes/linux-x64/native/libwkhtmltox.so

有什么建议可以继续解决这个问题吗?

谢谢, 鲁文

【问题讨论】:

    标签: docker .net-core aws-lambda


    【解决方案1】:

    我能够通过在 docker 容器环境中安装 DinkToPdf 库所需的一些软件包来解决此问题。

    然而,安装这些软件包的问题在 Amazon Linux 2 实例中并不直接。下面是我必须为 DinkToPdf 正常工作添加的 docker 文件。

    FROM public.ecr.aws/lambda/dotnet:core3.1
    
    WORKDIR /var/task
    
    COPY "bin/Release/lambda-publish"  .    
    RUN yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
    
    RUN yum install -y libgdiplus \
            ca-certificates \
            fontconfig \
            freetype \
            libX11 \
            libXext \
            libXrender \
    

    为了运行它,我还必须在构建 libwkhtmltox.dll、libwkhtmltox.dylib libwkhtmltox.dll.so 之后复制三个依赖库文件。

    【讨论】:

      猜你喜欢
      • 2022-08-09
      • 1970-01-01
      • 2022-11-03
      • 2021-06-15
      • 2018-01-14
      • 1970-01-01
      • 2022-06-16
      • 2021-09-20
      • 2021-05-27
      相关资源
      最近更新 更多