System.Drawing.Common在docker报错 The type initializer for 'Gdip' threw a...
今天在asp.net core站点上做一个发送邮件附带二维码的功能,为了方便邮件接受者直接手机扫描打开特定h5页面。采用QRCoder,代码很简单几行
QRCodeGenerator qrGenerator = new QRCodeGenerator(); QRCodeData qrCodeData = qrGenerator.CreateQrCode(content, QRCodeGenerator.ECCLevel.Q); Base64QRCode qrCode = new Base64QRCode(qrCodeData); return qrCode.GetGraphic(5);
返回二维码的base64格式,嵌入img中显示,运行->测试,一切顺利。 提交代码,生成镜像更新到站点,同样的路径走一遍,发现收到的邮件中没有图片。检查日志发现
An unhandled exception has occurred while executing the request.
System.TypeInitializationException: The type initializer for 'Gdip' threw an exception. ---> System.DllNotFoundException: Unable to load shared library 'libdl' or one of its dependencies. In order to help diagnose loading problems, consider setting the LD_DEBUG environment variable: liblibdl: cannot open shared object file: No such file or directory
at Interop.Libdl.dlopen(String fileName, Int32 flag)
at System.Drawing.SafeNativeMethods.Gdip.LoadNativeLibrary()
在github早有前人提交过同样的问题,解决方法是在生成镜像时安装缺失的包
FROM microsoft/aspnetcore:2.0 AS base RUN apt-get update && apt-get install -y apt-utils libgdiplus libc6-dev
重新生成测试通过。
因为安装包的缘故,整个镜像生成时间将近20分钟,我就顺便做了一个包含安装包的基础镜像,这样方便后续更新
docker push wyxnj/aspnetcore:latest
用这个作为asp.net core runtime的基础镜像,可以和以前一样快速生成镜像并更新站点。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Docker之11 Docker Swarm
什么是Docker Swarm Docker Swarm是官方对容器的编排项目之一,可以在多个主机上创建集群进行容器服务的统一管理。Swarm的架构中的角色为Manager及Worker。目前主流的容器编排方案为Docker Swarm加Compose或者为Kubernetes。 Docker Swarm集群配置 -1. 查看自身主机于其他Docker主机可以通讯的公网或者私网IP -2. 初始化Swarm集群并公布Manager节点的IP地址 docker swarm init --advertise-addr 172.18.49.120 -3. Worker节点通过Manager节点的IP地址进行加入 docker swarm join --token SWMTKN-1-09tuj2uw2h2ajbkq1n1ya6g2n7g496fk7ckiwf9e9plhcpgsut-1g0hm1mduwlbnzf36kahes38k 172.18.49.120:2377 -4. 加入后查看Swarm集群内所有节点 docker node ls -5. 通过Docker Info可见到集群部分信...
- 下一篇
《原创视频》牛腩学DOCKER简记
牛腩学docker简记 http://blog.niunan.net/blog/show/1258https://www.cnblogs.com/niunan/p/10917506.htmlhttps://www.jianshu.com/p/1fd8ce0d49ed 本视频记录牛腩学习在vs中的.net core项目中的添加docker支持的简单记录云服务器上运行docker网站的思路: 云服务器上装nginx, mysql 云服务器上装docker 本地VS .NET CORE项目生成docker镜像后导出传到云服务器上再导入 在云服务器上运行docker run xxxx, 定义好云服务器端口如:8001, nginx中做反向代理绑定某个域名跳到http://localhost:8001 (http://blog.niunan2.ml/blog/show/1183) docker官网:https://www.docker.com/阿里云的镜像加速器:https://cr.console.aliyun.com/cn-shenzhen/instances/mirrors牛腩博客.NET...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- MySQL8.0.19开启GTID主从同步CentOS8
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Docker安装Oracle12C,快速搭建Oracle学习环境
- CentOS7设置SWAP分区,小内存服务器的救世主
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- Linux系统CentOS6、CentOS7手动修改IP地址
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- SpringBoot2整合Thymeleaf,官方推荐html解决方案