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

命令运行后效果:linux

 

压缩发布包git

# 压缩
cd ./.Publish/  && tar -zcf ../Wolfy.Blog.tar.gz * && cd ../

命令执行后效果web

 

# 建立指定目录
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

命令效果app

# 解压
ssh -p 22 root@192.168.226.129 "tar -xzf /home/webroot/Wolfy.Blog.tar.gz -C /home/webroot/Wolfy.Blog"

命令效果ssh

# 授予执行权限
ssh -p 22 root@192.168.226.129 "chmod 777 /home/webroot/Wolfy.Blog"

首次部署须要添加该web应用supervisor配置spa

/etc/supervice/conf.d下添加rest

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

以后发布,就不须要管这些,经过命令code

# 启动站点
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

总结

一、发布以前须要经过git确认发布的分支。

git checkout develop

二、拉取最新代码

git pull

三、将上面内容替写入一个.sh的文件,和sln解决方案文件放在同一个目录便可,替换项目名称,好比我这里使用的实例Wolfy.Blog

四、supervisor的配置,须要注意下,这个地方根据本身的配置进行设置。

相关文章
相关标签/搜索