windows内:
做一个vs2017(15.8版本)新建.net core项目 asp.net core web应用程序api项目模板 asp.net core2.1 不选docker支持(因为在windows下配docker支持非常麻烦) https开着,不过默认发布到linux的时候最后好像都是http;
新建得项目WebApplication1,调试的话
https://localhost:5001/api/values会返回一个json文件内容是
["value1","value2"];
发布(新建配置文件):
发布方法:选文件系统;
设置:Release;
目标框架:我这时候暂时是 netcoreapp2.1;
部署模式:选独立,发布完,整体文件较多,较大,我目前实测大概是93mb+;
选框架依赖,发布完,整体文件数很少,实测不到2mb大;
因为是发布到centos7.x docker 所以目标运动时:linux-x64;
发布完默认文件在项目文件夹\bin\Release\netcoreapp2.1\publish下
linux:
将windows发布目录publish下的文件都打包,传送到linux下,解压到/dotnet下;
部署模式选独立:
chmod u+x /dotnet/WebApplication1
docker run -dit --restart=always --name=dotnet -p 80:80 -v /dotnet:/dotnet --hostname dotnet microsoft/dotnet:2.2-runtime /dotnet/WebApplication1;
microsoft/dotnet:2.2-runtime镜像大小180.5mb;
加上项目文件93mb+,共273mb+大;
部署模式选框架依赖:
docker run -dit --restart=always --name=dotnet -p 80:80 -v /dotnet:/dotnet --hostname dotnet microsoft/dotnet:2.2-aspnetcore-runtime dotnet /dotnet/WebApplication1.dll;
microsoft/dotnet:2.2-aspnetcore-runtime镜像大小257.8mb;
加上项目文件2mb-,共259mb大;
我的建议是选择第二种方式,包比较小哦,而且我看了vs2017给项目添加的docker支持里的dockerfile的from底包,就是aspnetcore-runtime;
原文地址:https://www.cnblogs.com/sfissw/p/9532812.html