You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何借助Plesk、Git和.NET Toolkit实现.NET应用部署后服务自动启停重启?

如何通过Plesk+Git Webhook实现.NET服务部署后自动启停/重启

问题描述

我们使用Plesk管理服务器与托管环境,通过Git Webhook触发部署拉取最新代码,配合.NET Toolkit开展应用部署,整体流程运转正常,但部署完成后需手动执行.NET服务的启用、禁用或重启操作才能让新版本生效。现需实现该环节的自动化,无需人工干预。

环境配置:

  • Plesk:负责服务器与托管环境管理
  • Git Webhook:代码推送时触发部署流程
  • .NET Toolkit:用于执行服务的启用、禁用与重启操作

解决方案

方法1:利用Plesk内置的「部署后脚本」功能

Plesk支持在Git部署完成后自动执行自定义脚本,直接调用.NET Toolkit完成服务操作:

  1. 登录Plesk后台,找到目标托管域名/应用,进入「Git」管理页面
  2. 在「部署后操作」区域,选择「运行自定义脚本」
  3. 输入对应.NET Toolkit命令,示例:
    • 直接重启服务:dotnet tool run [你的Toolkit命令] restart-service
    • 先禁用再启用(确保新版本完全加载):dotnet tool run [你的Toolkit命令] stop-service && dotnet tool run [你的Toolkit命令] start-service

    提示:若服务器上.NET Toolkit路径未加入全局环境变量,需使用绝对路径(如/usr/bin/dotnet tool run ...)

  4. 保存设置,后续Git Webhook触发部署后,脚本会自动执行服务操作

方法2:自定义Webhook处理脚本

如果Plesk内置脚本不够灵活,可直接编写独立脚本接管Webhook的后续逻辑:

  1. 在服务器上创建Shell脚本(例如/var/www/deploy-post-handler.sh),内容示例:
    #!/bin/bash
    # 确认代码拉取完成(若Plesk自动拉取可忽略此步)
    # 执行.NET服务重启
    dotnet tool run [你的Toolkit命令] restart-service
    # 可选:添加日志记录
    echo "$(date) 服务重启完成" >> /var/log/deploy-automation.log
    
  2. 给脚本添加执行权限:chmod +x /var/www/deploy-post-handler.sh
  3. 在Plesk的Git Webhook配置中,将Webhook的触发动作设置为执行该脚本
  4. 推送代码测试,验证服务是否自动完成启停/重启

方法3:结合Git钩子与Plesk CLI

通过Git仓库的post-receive钩子配合Plesk命令行工具实现自动化:

  1. 进入Plesk托管应用的Git仓库钩子目录(通常路径为/var/www/vhosts/[你的域名]/httpdocs/.git/hooks)
  2. 创建post-receive钩子文件,内容示例:
    #!/bin/bash
    # 触发Plesk同步部署最新代码
    plesk bin site -u [你的域名] -git-deploy
    # 调用.NET Toolkit执行服务操作
    dotnet tool run [你的Toolkit命令] restart-service
    
  3. 给钩子文件添加执行权限:chmod +x post-receive
  4. 推送代码后,Git的post-receive钩子会自动触发部署与服务操作

注意事项

  • 确保执行脚本的系统用户(通常为plesk或www-data)拥有.NET Toolkit的执行权限,以及操作目标服务的权限
  • 若.NET Toolkit依赖特定环境变量,可在脚本开头添加(如export DOTNET_ROOT=/usr/share/dotnet)
  • 建议在脚本中添加日志输出,方便后续排查自动化流程中的问题

内容的提问来源于stack exchange,提问作者ali hassan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 08:27:14