[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的配置,須要注意下,這個地方根據本身的配置進行設置。

相關文章
相關標籤/搜索