zoukankan      html  css  js  c++  java
  • [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的配置,需要注意下,这个地方根据自己的配置进行设置。

  • 相关阅读:
    css选择器解析规则
    swiper轮播图包含视频或图片
    css实现文字选中变色
    swiper鼠标滚轮事件
    C语言中,关于相除的问题
    输入测试字符型数据的组数,再输入字符型数据,排坑
    C语言中,字符型数字与常数型数字的加减实现
    C语言的指针用法:输入一堆字符,把非字母的删去。
    C语言中倒序输出你输入的数。
    C语言中,嵌套的if语句的一些经验...
  • 原文地址:https://www.cnblogs.com/wolf-sun/p/9958950.html
Copyright © 2011-2022 走看看