zoukankan      html  css  js  c++  java
  • netcore程序部署 docker 异常 --生成图片二维码缺少libdl

    最近因业务需求需要在程序中实现二维码图片生成,于是就用到QRCoder开发库。最终在windows环境下部署运行没问题,但切换到docker(centos7.0)后发现是有问题的。

    错误信息提示:The type initializer for 'Gdip' threw an exception. Unable to load shared library 'libdl' or one of its dependencies.

    如下图所示:

    通过报错分析,docker容器缺少libdl文件导致报错。

    需要在镜像里安装组件libgdiplus 、libc6-dev

    构建Dockerfile内容如下:

    #基于 `microsoft/aspnetcore:latest` 来构建我们的镜像
    FROM microsoft/aspnetcore:latest AS base
    RUN apt-get update && apt-get install -y apt-utils libgdiplus libc6-dev
    
    #拷贝项目publish文件夹中的所有文件到 docker容器中的publish文件夹中  
    COPY . /publish
    
    #设置工作目录为 `/publish` 文件夹,即容器启动默认的文件夹
    WORKDIR /publish
    
    #使用`主程序.dll`来运行应用程序
    CMD ["dotnet", "主程序.dll"]

    花了我大半天的时间终于解决了。

    顺便说一下,如果各位用的Core2.0 以上版本,直接把Dockerfile中 < FROM microsoft/aspnetcore:latest AS base>的内容替换<FROM microsoft/aspnetcore:版本号 AS base>

  • 相关阅读:
    23.什么是控制文件?
    路由器原理及路由协议
    大家帮忙看看,不会即使显示串口缓冲数据
    c# interface
    ip classless&no ip classless
    Visual Studio 2010 Visual C++ 确定要重新分发的 DLL
    fibonacci算法
    loopback端口作用
    疑惑的virtual method
    Read MBR via ReadFile function
  • 原文地址:https://www.cnblogs.com/hank-hu/p/11791683.html
Copyright © 2011-2022 走看看