[Asp.net core]使用ssh命令发布asp.net core项目
命令
# 移除之前发布的包 rm -rf ./.Publish rm -rf ./Wolfy.Blog.tar.gz # 编译并发布 将发布包打包在.Publish目录下 "C:/Program Files/dotnet/dotnet.exe" publish "./Wolfy.Blog/Wolfy.Blog.csproj" -c Release -r linux-x64 -f netcoreapp2.1 -o "../.Publish"
命令运行后效果:
压缩发布包
# 压缩
cd ./.Publish/ && tar -zcf ../Wolfy.Blog.tar.gz * && cd ../
命令执行后效果
# 创建指定目录 ssh -p 22 root@192.168.226.129 "mkdir -p /home/webroot/Wolfy.Blog"
命令效果:
# 远程文件拷贝命令 scp -P 22 -r ./Wolfy.Blog.tar.gz root@192.168.226.129:/home/webroot/Wolfy.Blog.tar.gz
命令效果
# 解压 ssh -p 22 root@192.168.226.129 "tar -xzf /home/webroot/Wolfy.Blog.tar.gz -C /home/webroot/Wolfy.Blog"
命令效果
# 授予执行权限 ssh -p 22 root@192.168.226.129 "chmod 777 /home/webroot/Wolfy.Blog"
首次部署需要添加该web应用supervisor配置
/etc/supervice/conf.d下添加
Wolfy.Blog.conf
[program:Wolfy.Blog] ;定义进程名称 command=dotnet Wolfy.Blog.dll ;程序启动命令 directory=/home/webroot/Wolfy.Blog ;命令执行的目录 autostart=true ;在Supervisord启动时,程序是否启动 autorestart=true ;程序退出后自动重启 startretries=5 ;启动失败自动重试次数,默认是3 startsecs=1 ;自动重启间隔 user=root ;设置启动进程的用户,默认是root priority=999 ;进程启动优先级,默认999,值小的优先启动 stderr_logfile=/var/logs/supervisor/Wolfy.Blog.err.log ;标准错误日志 stdout_logfile=/var/logs/supervisor/Wolfy.Blog.out.log ;标准输出日志 environment=ASPNETCORE_ENVIRONMENT=Production ;进程环境变量 stopsignal=INT ;请求停止时用来杀死程序的信号
supervisorctl -c /etc/supervisor/supervisord.conf reload
之后发布,就不需要管这些,通过命令
# 启动站点 ssh -p 22 root@192.168.226.129 "rm -f /var/logs/supervisor/Wolfy.Blog.err.log" ssh -p 22 root@192.168.226.129 "rm -f /var/logs/supervisor/Wolfy.Blog.out.log" ssh -p 22 root@192.168.226.129 "supervisorctl -c /etc/supervisor/supervisord.conf restart Wolfy.Blog"
可以通过supervisor先将站点停止,然后运行上面的命令,刷新supervisor管理页面,可以看到web启动成功。
所以完整的命令文件为:
# 移除之前发布的包 rm -rf ./.Publish rm -rf ./Wolfy.Blog.tar.gz # 编译并发布 将发布包打包在.Publish目录下 "C:/Program Files/dotnet/dotnet.exe" publish "./Wolfy.Blog/Wolfy.Blog.csproj" -c Release -r linux-x64 -f netcoreapp2.1 -o "../.Publish" # 压缩 cd ./.Publish/ && tar -zcf ../Wolfy.Blog.tar.gz * && cd ../ # 创建指定目录 ssh -p 22 root@192.168.226.129 "mkdir -p /home/webroot/Wolfy.Blog" # 远程文件拷贝命令 scp -P 22 -r ./Wolfy.Blog.tar.gz root@192.168.226.129:/home/webroot/Wolfy.Blog.tar.gz # 解压 ssh -p 22 root@192.168.226.129 "tar -xzf /home/webroot/Wolfy.Blog.tar.gz -C /home/webroot/Wolfy.Blog" # 授予执行权限 ssh -p 22 root@192.168.226.129 "chmod 777 /home/webroot/Wolfy.Blog" # 启动站点 ssh -p 22 root@192.168.226.129 "rm -f /var/logs/supervisor/Wolfy.Blog.err.log" ssh -p 22 root@192.168.226.129 "rm -f /var/logs/supervisor/Wolfy.Blog.out.log" ssh -p 22 root@192.168.226.129 "supervisorctl -c /etc/supervisor/supervisord.conf restart Wolfy.Blog" # 清理本地发布包 rm -rf ./.Publish rm -rf ./Wolfy.Blog.tar.gz
总结
1、发布之前需要通过git确认发布的分支。
git checkout develop
2、拉取最新代码
git pull
3、将上面内容替写入一个.sh的文件,和sln解决方案文件放在同一个目录即可,替换项目名称,比如我这里使用的实例Wolfy.Blog
4、supervisor的配置,需要注意下,这个地方根据自己的配置进行设置。
-
博客地址:http://www.cnblogs.com/wolf-sun/
博客版权:如果文中有不妥或者错误的地方还望高手的你指出,以免误人子弟。如果觉得本文对你有所帮助不如【推荐】一下!如果你有更好的建议,不如留言一起讨论,共同进步! 再次感谢您耐心的读完本篇文章。
分类:
[Asp.Net Core]
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
2013-11-14 [UML]UML系列——类图class的依赖关系