zoukankan      html  css  js  c++  java
  • docker~aspnetcore2.0镜像缺少libgdiplus问题

    回到目录

    对于微软官方提供的镜像microsoft/aspnetcore2.0来说,它没有安装libgdiplus包,所以当你使用了draw去画图时,就会出现一些问题,我们一般会安装第三方的包包,ZKWeb.System.Drawing,而发布到docker里之后,运行时,会出现找不到dll的情况!

    原因:

    微软的aspnetcore镜像是在Ubuntu操作系统基础之上的,而这个系统上并没有安装libgdiplus,所以需要我们手动把镜像运行后,先安装一下,然后commit成自己的镜像,以后对于这种需要Drawing的项目,就引用自己的镜像就可以了。

    解决方法(一):

    进行镜像对应的容器

    docker run -it containerid

    然后去安装它

    apt-get install libgdiplus

    然后退出

    exit

    最后commit成为自己的镜像

    sudo docker commit 8b10012d942f  lind/aspnetcore:2.0 

    你可以把这个镜像导出,放到自己的服务器上

    docker save 8b10012d942f > lind_aspnetcore.tar

    最后,在目标服务器上运行即可!

    解决方法(二):

    修改你的Dockerfile文件,使用RUN命令去安装你的libgdiplus,但个人觉得,这种有些浪费资源,毕竟需要每个容器都要去安装一个它,而且下载速度不敢恭维!

    FROM microsoft/aspnetcore:2.0
    ARG source
    
    RUN apt-get update
    RUN apt-get install libgdiplus
    
    WORKDIR /app
    COPY ${source:-obj/Docker/publish} .
    ENTRYPOINT ["dotnet", "LindSMS.dll"]

    当然上面的方案二不会产生新的镜像,这点到是挺干净,哈哈!

    感谢阅读!

     回到目录

  • 相关阅读:
    iOS埋点统计
    iOS CrashLog Analysis
    ffmpeg for iOS
    Charles抓包http和https
    reveal查看任意APP
    TesseractOCR
    JSPatch
    Mac如何找到从AppStore下载的正版Xcode安装包、以及Xcode清理缓存
    reveal
    TestFlight
  • 原文地址:https://www.cnblogs.com/lori/p/7543886.html
Copyright © 2011-2022 走看看