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的配置,需要注意下,这个地方根据自己的配置进行设置。

  • 相关阅读:
    ZOJ 3818 Pretty Poem
    HDU 4597 Play Game
    HDU 4497 GCD and LCM
    CSU 1335 高桥和低桥
    UVA 10791 Minimum Sum LCM
    CSU 1119 Collecting Coins
    CSU 1120 病毒
    UVA 12169 Disgruntled Judge
    HDU 1301 Jungle Roads
    POJ 1258 Agri-Net
  • 原文地址:https://www.cnblogs.com/wolf-sun/p/9958950.html
Copyright © 2011-2022 走看看