zoukankan      html  css  js  c++  java
  • Docker中运行.net core 验证码不显示

    问题根源:

            验证码图片生成代码使用了System.Drawing,但是在Dockerfile的引用: microsoft/dotnet:2.2-aspnetcore-runtime 中微软官方并没有集成libgdiplus

            所以解决方法有3个

           1、在Dockerfile文件中添加RUN参数  安装libgdiplus

    FROM microsoft/dotnet:2.2-aspnetcore-runtime
    RUN apt-get update
    RUN apt-get install libgdiplus -y
    WORKDIR /app
    COPY publish目录 /app
    ENTRYPOINT ["dotnet", "入口程序"]

           2、运行原始web容器,在容器中安装好libgdiplus,再重新打包镜像。(未尝试)

           

    //创建一个容器 mycont,在后台运行
    docker run -dit --name mycont xxxx
    
    //进入虚拟命令对话框
    docker exec -it  /bin/bash
    
    //更新(不执行更新操作可能出现找不到libgdiplush的情况)
    apt-get update
    
    //安装
    apt-get install libgdiplus
    
    //退出
    exit
    
    //提交新镜像
    docker commit mycont  myimages/aspnetcore:2.0
    
    //也可以把镜像导出,放到其他服务器上
    docker save mycont > lind_aspnetcore.tar

           3、更改验证码生成方式,重新打包发布(链接是第三方图片处理类在liunx下有很强的兼容性,避免跳坑)

                https://github.com/SixLabors/ImageSharp

    参考:https://www.cnblogs.com/lori/p/7543886.html

  • 相关阅读:
    秘密挤奶机(最大流,二分)
    伊基的故事 I
    多源汇最大流(最大流)
    无向树是二分图
    上下界可行流
    圆桌问题(最大流,二分图,网络流24题)
    双栈排序
    观光奶牛
    拜访奶牛
    愤怒的牛&数列分段II
  • 原文地址:https://www.cnblogs.com/yhnet/p/11731133.html
Copyright © 2011-2022 走看看