Asp.Net Core使用System.Drawing.Common部署到docker报错问题

本文记录了Asp.NetCore2.1在Docker容器中使用System.Drawing.Common进行绘图时遇到的问题及解决方案,包括创建libdl.so软链接、安装libgdiplus和配置字体显示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 详细报错

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

Asp.Net Core 2.1发布后,正式支持System.Drawing.Common绘图了,可以用来做一些图片验证码之类的功能。但是把网站部署到docker容器里运行会遇到很多问题,也是非常闹心的,本文记录这些问题,希望帮到有需要的人

解决:

1.1 建立libdl.so 的软连接

参考:https://q.cnblogs.com/q/107946/

ln -s /lib/x86_64-linux-gnu/libdl.so.2  /lib/x86_64-linux-gnu/libdl.so

1.2 找不到libgdiplus

参考:https://q.cnblogs.com/q/103863/

apt-get update

apt-get install -y --allow-unauthenticated libgdiplus

1.3 汉字没有显示

把本地字体上传到服务器/usr/share/fonts下

cd /usr/share/fonts/

cd winfonts/

apt-get install xfonts-utils

mkfontscale 

mkfontdir 

cat fonts.scale 

fc-list :lang=zh-cn

解决!!!

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值