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"]

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

    感谢阅读!

     回到目录

  • 相关阅读:
    web应用/http协议/web框架
    算法-排序-1.冒泡排序/2.选择排序/3.插入排序
    算法-基础和查找-1.汉诺塔/2.顺序查找/3.二分查找/4.顺序查找和二分查找的比较
    前端开发
    前端开发
    前端开发
    前端开发
    数据库
    LeetCode : Add Binary
    LeetCode : Length of Last Word
  • 原文地址:https://www.cnblogs.com/lori/p/7543886.html
Copyright © 2011-2022 走看看