问题根源:
验证码图片生成代码使用了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
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Docker中运行.net core 验证码不显示 - Python技术站