自己写个网盘系列:③ 开源这个网盘编码,手把手教你windows linux 直接部署,docker本地打包部署网盘应用
系列①②已经完成了这个项目的页面和项目的全部编码,前后端分离,这个文章将向你展示运维小伙伴如何部署到windows服务器,linux服务器,docker部署,一学就会,快来看看吧!
说明:这个系列准备用Simple快速框架搞个自己能用的网盘,来个实战,教大家如何搞一个项目,其中你能学到如何进行项目级对接,如何快速进行项目编码,如何完善你的项目,以及如何部署它。
我的快速开发框架项目
先介绍下我的基于.NET 8的快速开发框架Simple Framework,旨在简化开发流程,减少学习成本。框架特点包括基于.NET 8、少用第三方库、基本授权鉴权、CRUD实现和后台管理前端。规划使用了NLog、Redis、Json库等,并支持多数据库结构。框架包含基础库、Web项目扩展库、EFCore扩展库、代码生成器和定时任务模块,并提供了一套基于vue2 elementui前端页面框架,以提高开发效率和灵活性,发布以来收到了很多朋友的喜欢,本文的封装工具也是朋友的建议下撸出来的,快去看看吧。点我Star
整个项目已经完成了,整体代码图如下:
项目代码行数分析图 692行:
下面开始准备编译部署
先说最简单的windows服务器部署运行
webHost项目右键发布,选择win64(不考虑x86了),我们按照框架依赖发布
发布好后,在服务器上安装.NET8的运行环境 安装 Windows Hosting Bundle ,输入dotnet --info 查看是否安装正常
将publish包拷贝到服务器的软件目录,下面几种运行方式:
1.简单运行直接双击启动webhost.exe
2.cmd命令启动 dotnet webhost.dll
3.IIS 运行,IIS添加网站,选择我们的目录,和常规iis站点一样直接启动
4.服务运行,将应用注册为服务运行。
应用正常启动后,浏览器输入http://localhost:5000即可进入网盘页面。
接下来说Linux服务器部署运行
此处假设你已经有一定的linux使用基础,确保开启了适当的防火墙端口,以便外界可以访问你的应用程序
本地根据你的linux服务器版本 配置发布文件,我此处使用Linux-64发布,发布好后复制到服务器上
我们使用WindTerm 连接我们的Linux服务器,首先不管什么版本的linux 服务器,先按照脚本安装.NET 8 Linux发行版,以Ubuntu为例,你可能需要执行如下命令来安装.NET 8:
# 添加Microsoft的包仓库
sudo rpm -Uvh https://packages.microsoft.com/config/centos/7/packages-microsoft-prod.rpm
# 安装.NET SDK
sudo yum install dotnet-sdk-8.0
# 安装.NET 运行时
sudo yum install aspnetcore-runtime-8.0
# 安装.NET 运行时环境
sudo yum install dotnet-runtime-8.0
如果是Centos(高版本)
# 添加Microsoft的包仓库
sudo rpm -Uvh https://packages.microsoft.com/config/centos/7/packages-microsoft-prod.rpm
# 安装.NET SDK
sudo yum install dotnet-sdk-8.0
# 安装.NET 运行时
sudo yum install aspnetcore-runtime-8.0
# 安装.NET 运行时环境
sudo yum install dotnet-runtime-8.0
安装完成后,使用dotnet --info测试你的安装是否正常
在应用目录 执行 dotnet WebHost.dll 即可运行你的网盘站点,注意,按照此方式运行的站点,ssh连接断开后应用就关闭了,和我们关闭了控制台一样,你要保持常驻运行,一般我们使用服务运行。
接下来说Linux服务器服务部署运行
上述过程不变需要来一遍,使用systemd创建一个服务。创建一个服务文件,例如/etc/systemd/system/WebHost.service,然后添加以下内容:
[Unit]
Description=WebHost
[Service]
WorkingDirectory=/path/to/app
ExecStart=/usr/bin/dotnet /path/to/app/WebHost.dll
Restart=always
RestartSec=10
KillSignal=SIGINT
SyslogIdentifier=dotnet-example
User=root
Environment=ASPNETCORE_ENVIRONMENT=Production
[Install]
WantedBy=multi-user.target
然后启用并启动服务:
sudo systemctl enable your-application.service
sudo systemctl start your-application.service
好了,就这么简单,Linux服务器上的发布部署也就完了,当然还有一些更细节的配置,比如配置使用啥端口啊,配置使用啥账户运行啊,那都是需要更深入后会遇到的问题,此处就不深入解说了
接下来说服务器Docker部署运行,此处假设你已经知道一些docker的基础知识
首先你要制作docker镜像,需要配置dockerfile
FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base
USER root
WORKDIR /app
EXPOSE 8080
# 将发布的应用文件复制到容器中 . . 需要dockerfile文件和发布后的文件在一个目录
COPY . .
ENTRYPOINT ["dotnet", "WebHost.dll"]
上传你发布好的文件,连同dofkerfile文件一起,在此目录构建docker 镜像
docker build -t simplecloudimage:tag .
执行 docker images 查看是否构建成功
构建成功之后,就可以使用docker命令运行容器
docker run -d \
-v simplecloud-keys:/root/.aspnet/DataProtection-Keys \
-v /mystorage/SimpleCloud:/app/simplecloud \
-p 8080:8080 \
--name simplecloud simplecloudimage
上面的命令我把存储盘给映射了出来,保证我们的文件即使容器不在了,也能存在,端口正常的情况下,你访问服务器8080端口即可进入网盘
❣扩展
你的镜像构建好了,你可以把他发布到镜像仓库,这样其它人就可以直接使用你构建好的镜像来创建应用,那个属于docker的使用就不细说了,快给我点赞给我动力发布其他更多精彩内容吧!
源码地址
快给我点赞给我动力发布其他更多精彩内容吧!
自己写个网盘系列:③ 开源这个网盘编码,手把手教你windows linux 直接部署,docker本地打包部署网盘应用的更多相关文章
- Coolify系列02-从0到1超详细手把手教你上手Coolify
接着上集(Coolify系列01- 从0到1超详细手把手教你上手Heroku 和 Netlify 的开源替代方案 ),此时我们已经运行成功,如果没有成功,可以参考我的Coolify系列其他文章来解决问 ...
- 手把手教你写Kconfig---基于tiny4412开发板
转自:http://blog.csdn.net/morixinguan/article/details/54744237 今天,我就来教大家写写最简单的Kconfig,什么是Kconfig? 我们配置 ...
- 打造百度网盘备份利器:自动备份Linux VPS文件和多线程下载百度网盘资源
前一段时间国内的各大网盘百度云盘,金山快盘,360云盘,华为网盘为争夺用户上演空间容量博弈,网盘商们还固执地以为中国的网民都不懂网络技术,可以像某公司那样用一些数字的手段来忽悠用户,参与到网盘商的数字 ...
- 手把手教你写电商爬虫-第三课 实战尚妆网AJAX请求处理和内容提取
版权声明:本文为博主原创文章,未经博主允许不得转载. 系列教程: 手把手教你写电商爬虫-第一课 找个软柿子捏捏 手把手教你写电商爬虫-第二课 实战尚妆网分页商品采集爬虫 看完两篇,相信大家已经从开始的 ...
- 手把手教你写电商爬虫-第四课 淘宝网商品爬虫自动JS渲染
版权声明:本文为博主原创文章,未经博主允许不得转载. 系列教程: 手把手教你写电商爬虫-第一课 找个软柿子捏捏 手把手教你写电商爬虫-第二课 实战尚妆网分页商品采集爬虫 手把手教你写电商爬虫-第三课 ...
- 《Dotnet9》系列-开源C# WPF控件库3《HandyControl》强力推荐
大家好,我是Dotnet9小编,一个从事dotnet开发8年+的程序员.我最近开始写dotnet分享文章,希望能让更多人看到dotnet的发展,了解更多dotnet技术,帮助dotnet程序员应用do ...
- docker安装nextcloud私人网盘,开启https配置证书
docker安装nextcloud私人网盘 之前一直用的百度网盘最近svip超级会员到期了,续费要¥199元,对于一个打工人的我来说有点儿贵.作为技术人的一员,我就来发挥发挥自己的长处,来搭建一个私人 ...
- p2p-tunnel 打洞内网穿透系列(三)TCP转发访问内网web服务
系列文章 p2p-tunnel 打洞内网穿透系列(一)客户端配置及打洞 p2p-tunnel 打洞内网穿透系列(二)TCP转发访问远程共享文件夹 p2p-tunnel 打洞内网穿透系列(三)TCP转发 ...
- 一个网友写的栈,问为啥不能迭代。具有__iter__ 和next方法的对象叫迭代器-七七巴巴黄页网
一个网友写的栈,问为啥不能迭代.具有__iter__ 和next方法的对象叫迭代器-七七巴巴黄页网 一个网友写的栈,问为啥不能迭代.具有__iter__ 和next方法的对象叫迭代器 python视频 ...
- Docker+Nextcloud快速部署个人网盘
各位大佬好,,,萌新顾北清又回来更新了,今天要快速部署一个人网盘. 有多快呢,,,5分钟吧,因为我们使用Docker部署. Docker基础可以看看我之前的博文.(点这里点这里) 那么,,,开始吧. ...
随机推荐
- Swoole从入门到入土(27)——协程[协程容器]
这一章开始,我们要开始全方位讨论Swoole为我们提供的协程机制.在swoole中所有的协程必须在协程容器里面创建(Swoole\Coroutine\Scheduler),Swoole 程序启动的时候 ...
- Spring Cloud Gateway微服务网关快速入门
介绍 Spring Cloud Gateway 是 Spring 官方基于 Spring 5.0,Spring Boot 2.0 和 Project Reactor 等技术开发的网关,Spring C ...
- js加css实现div展示更多隐藏内容
说明 在设计博客首页文章分类等栏目时,有时候列表内容太多往往不是一次性展示出来.此时需要添加更多功能,当点击更多标签时再展示剩余隐藏的项目. 效果 代码 <!DOCTYPE html> & ...
- 网络上收集的C++常见面试题
1. 进程与线程的关系,图解 进程简单理解就是我们平常使用的程序,进程拥有自己独立的内存空间地址,拥有一个以上的线程. 线程可以理解为轻量级的进程,是程序执行的最小单元.在某个进程启动后,会默认产生一 ...
- win32-FileTimeToSystemTime的使用
#include <Windows.h> #include <iostream> #include <string> #pragma warning(disable ...
- win32 - 在cmd中禁用进程权限
C:\Users\path>whoami /priv 在cmd中输入whoami /priv后将获得当前令牌(标准用户)的权限. C:\Users\path>tasklist /v /fo ...
- PHP项目&变量覆盖&反序列化&未授权访问&身份验证
CNVD拿1day-验证&未授权-xhcms&Bosscms 此种漏洞由于没有什么关键函数,所以需要通过功能点去进行测试. Bosscms未授权访问 CNVD官网上搜索Bosscms未 ...
- C++ //模板案例-数组封装类
1 //模板案例-数组封装类 2 //描述 3 //实现一个通用的数组类 4 //1.可以对内置数据类型以及自定义数据类型的数据进行储存 5 //2.将数组很脏的数据储存到堆区 6 //3.构造函数中 ...
- 制作有延迟插件的rabbitmq镜像
插件Git官方地址:https://github.com/rabbitmq/rabbitmq-delayed-message-exchange Dockerfile FROM rabbitmq:3.8 ...
- keil5 调试
入口 复位 全速运行 先鼠标左键选中一行,然后点击就可以跳转到那一行 点击左侧灰色地带会生成断点,然后点击全速运行会到这个断点 查看动态参数 外设资源栏,可以看外设寄存器 点击运行,就可以实实查看寄存 ...