coding代码自动部署

本文介绍如何在服务器上使用SSH密钥进行安全连接,并通过宝塔面板的Webhook功能自动化部署Coding网上的Git项目。文章详细解释了生成SSH密钥、配置宝塔面板Webhook以及自动化拉取和更新项目文件的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、服务器上生成公钥ssh

  ssh-keygen -t rsa -C "your_email@example.com"

  生成后把公钥放到coding项目仓库中

二、服务器目录git init,拉取下coding上的文件

三、然后配置宝塔钩子代码(如下),生成url配置到coding的开发选项webhook中

宝塔webhook钩子代码

#!/bin/bash
echo ""
#输出当前时间
date --date='0 days ago' "+%Y-%m-%d %H:%M:%S"
echo "Start"
#判断宝塔WebHook参数是否存在
if [ ! -n "$1" ];
then 
          echo "param参数错误"
          echo "End"
          exit
fi
#git项目路径   $1为项目名称,这里用$1 参数来获取
gitPath="/data/wwwroot/m.abc.com/$1"  (若项目名称跟服务器文件目录不同,可直接写服务器目录)
#git 网址
gitHttp="git@e.coding.net:geenwin/$1.git"
 
echo "Web站点路径:$gitPath"
 
#判断项目路径是否存在
if [ -d "$gitPath" ]; then
        cd $gitPath
        #判断是否存在git目录
        if [ ! -d ".git" ]; then
                echo "在该目录下克隆 git"
                sudo git clone $gitHttp gittemp
                sudo mv gittemp/.git .
                sudo rm -rf gittemp
        fi
        echo "拉取最新的项目文件"

       #origin/master 远程master分支 也可以写其他分支
        sudo git reset --hard origin/master
        sudo git pull        
        #echo "设置目录权限"   服务器项目存在情况下不需要设置目录权限,设置会导致所有的文件被更新了时间,导致不知道拉取了哪个文件
        #sudo chown -R www:www $gitPath
        echo "End"
        exit
else
        echo "该项目路径不存在"
                echo "新建项目目录"
        mkdir $gitPath
        cd $gitPath
        #判断是否存在git目录
        if [ ! -d ".git" ]; then
                echo "在该目录下克隆 git"
                sudo git clone $gitHttp gittemp
                sudo mv gittemp/.git .
                sudo rm -rf gittemp
        fi
        echo "拉取最新的项目文件"
        sudo git reset --hard origin/master
        sudo git pull
        echo "设置目录权限"
        sudo chown -R www:www $gitPath
        echo "End"
        exit
fi
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值