【.NET Core】在Docker中找不到gdiplus.dll

10 篇文章 0 订阅
8 篇文章 0 订阅

你在windows上使用图像组件没有任务问题,但部署到linux之后,将注意以下几点:

  1. 安装nuget包ZKWeb.System.Drawing
  2. 项目里还是引用System.DrawingCore,这点不用改
  3. 安装gdiplus插件,这个需要根据linux类型不同,有不同的方法,大叔做了一下总结

安装gdiplugs的方法

大叔总结的方法
ubuntu && debian

sudo apt-get install libgdiplus
cd /usr/lib
sudo ln -s libgdiplus.so gdiplus.dll

centos

yum whatprovides libgdiplus && yum install -y epel-release && yum install -y libgdiplus-2.10-9.el7.x86_64 && yum install -y libgdiplus-devel

官方提供的方法:

Ubuntu 16.04:

apt-get install libgdiplus
cd /usr/lib
ln -s libgdiplus.so gdiplus.dll

Fedora 23:

dnf install libgdiplus
cd /usr/lib64/
ln -s libgdiplus.so.0 gdiplus.dll

CentOS 7:

yum install autoconf automake libtool
yum install freetype-devel fontconfig libXft-devel
yum install libjpeg-turbo-devel libpng-devel giflib-devel libtiff-devel libexif-devel
yum install glib2-devel cairo-devel
yum install git
git clone https://github.com/mono/libgdiplus
cd libgdiplus
yum -y install ftp
./autogen.sh
yum -y install gcc automake autoconf libtool make
yum -y install gcc gcc-c++
make
make install
cd /usr/lib64/
ln -s /usr/local/lib/libgdiplus.so gdiplus.dll

Docker:

RUN apt-get update
RUN apt-get install -y libgdiplus
RUN cd /usr/lib
RUN sudo ln -s libgdiplus.so gdiplus.dll

例子:

FROM mcr.microsoft.com/dotnet/core/aspnet:2.2-stretch-slim AS base
WORKDIR /app
EXPOSE 80

FROM mcr.microsoft.com/dotnet/core/sdk:2.2-stretch AS build

RUN apt-get update
RUN apt-get install -y libgdiplus
RUN cd /usr/lib
RUN sudo ln -s libgdiplus.so gdiplus.dll

WORKDIR /src
COPY ["DC_MMS_API/DC_MMS_API.csproj", "DC_MMS_API/"]
COPY ["Core/Core.csproj", "Core/"]
COPY ["Infrastructure/Infrastructure.csproj", "Infrastructure/"]
RUN dotnet restore "DC_MMS_API/DC_MMS_API.csproj"
COPY . .
WORKDIR "/src/DC_MMS_API"
RUN dotnet build "DC_MMS_API.csproj" -c Release -o /app

FROM build AS publish
RUN dotnet publish "DC_MMS_API.csproj" -c Release -o /app

FROM base AS final
WORKDIR /app
COPY --from=publish /app .
ENTRYPOINT ["dotnet", "DC_MMS_API.dll"]

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值