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

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

感谢阅读!

本文转自博客园张占岭(仓储大叔)的博客,原文链接:docker~aspnetcore2.0镜像缺少libgdiplus问题,如需转载请自行联系原博主。

目录
相关文章
|
3月前
|
JavaScript Docker 容器
使用Docker多阶段构建优化镜像大小
使用Docker多阶段构建优化镜像大小
353 100
|
3月前
|
缓存 安全 Linux
优化Docker镜像大小的多阶段构建实践
优化Docker镜像大小的多阶段构建实践
283 99
|
3月前
|
缓存 Docker 容器
优化Docker镜像大小的五个实用技巧
优化Docker镜像大小的五个实用技巧
297 98
|
3月前
|
安全 Go Docker
使用Docker多阶段构建优化镜像大小
使用Docker多阶段构建优化镜像大小
|
8月前
|
Docker 容器 Perl
云效flow构建docker镜像更换apt源为阿里镜像源
在 Dockerfile 中添加命令以更换 Debian 源为阿里云镜像,加速容器内软件包下载。核心命令通过 `sed` 实现源地址替换,并更新 apt 软件源。其中 `cat` 命令用于验证替换是否成功,实际使用中可删除该行。
1611 32
|
2月前
|
NoSQL 算法 Redis
【Docker】(3)学习Docker中 镜像与容器数据卷、映射关系!手把手带你安装 MySql主从同步 和 Redis三主三从集群!并且进行主从切换与扩容操作,还有分析 哈希分区 等知识点!
Union文件系统(UnionFS)是一种**分层、轻量级并且高性能的文件系统**,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下(unite several directories into a single virtual filesystem) Union 文件系统是 Docker 镜像的基础。 镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。
353 5
|
3月前
|
Java Docker 容器
使用Docker多阶段构建优化镜像大小
使用Docker多阶段构建优化镜像大小
183 8
|
4月前
|
缓存 Ubuntu Docker
Ubuntu环境下删除Docker镜像与容器、配置静态IP地址教程。
如果遇见问题或者想回滚改动, 可以重启系统.
290 16
kde
|
5月前
|
Docker 容器 应用服务中间件
Docker 客户端是如何拉取镜像的?
Docker客户端拉取镜像的过程遵循Docker Registry HTTP API V2规范,主要分为解析镜像名、鉴权、获取Manifest、拉取Layers及本地合并五个步骤。它与Docker Hub、Harbor等仓库通信,确保镜像正确下载和构建。
kde
782 59
|
4月前
|
运维 关系型数据库 数据库
应用官方 Docker 镜像已成熟,团队为何转向 Websoft9 而不再依赖 Bitnami
随着云原生发展,部署工具从 Bitnami 转向 Websoft9。后者基于官方镜像,提供多应用编排与统一运维,提升部署效率与维护能力,适合多系统协同场景。
应用官方 Docker 镜像已成熟,团队为何转向 Websoft9 而不再依赖 Bitnami