# 移除以前發佈的包 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的配置,須要注意下,這個地方根據本身的配置進行設置。