zoukankan      html  css  js  c++  java
  • jenkins发布dotnet core项目

    使用上传压缩包的方式,将dotnet core项目上传到jenkins,并自动创建linux系统服务,开机自启

    所需插件

    效果如下:

    使用参数化构建


    构建使用的shell脚本如下

    #!/bin/bash
    # 项目部署根目录
    rootpath="/Code/HNSZ/Server"
    
    # 项目运行目录
    path="${rootpath}/${Module}/"
    
    # 所要运行项目的启动文件名称
    file="${path}RG.${Module}.Web.dll"
    
    # 生成的linux服务文件名称
    servicename="rg_${Module,,}.service"
    
    # linux服务所保存的路径
    servicepath="/etc/systemd/system/$servicename"
    
    # 生成linux 服务文件
    echo "[Unit]" > $servicepath
    echo "Description=dotnet core 微服务" >> $servicepath
    echo "" >> $servicepath
    echo "[Service]" >> $servicepath
    echo "WorkingDirectory=$path" >> $servicepath
    echo "ExecStart=/usr/bin/dotnet $file" >> $servicepath
    echo "Restart=always" >> $servicepath
    echo "# Restart service after 10 seconds if the dotnet service crashes:" >> $servicepath
    echo "RestartSec=10" >> $servicepath
    echo "KillSignal=SIGINT" >> $servicepath
    echo "SyslogIdentifier=RG_${Module}_Web" >> $servicepath
    echo "User=root" >> $servicepath
    echo "Environment=ASPNETCORE_ENVIRONMENT=Production" >> $servicepath
    echo "Environment=DOTNET_PRINT_TELEMETRY_MESSAGE=false" >> $servicepath
    echo "" >> $servicepath
    echo "[Install]" >> $servicepath
    echo "WantedBy=multi-user.target" >> $servicepath
    # 生成服务结束
    
    # 启用服务
    systemctl enable $servicename
    
    # 停止服务(防止第二次发布时,服务为启动状态)
    systemctl stop $servicename
    
    cd $rootpath
    
    # 备份原目录(第一次无备份,再次发布,先备份原目录)
    # 判断指定目录中是否有文件(目录不存在时也不影响)
    if [ "$(ls -A $path)" ]; then
        zip -q -r ${Module}_${BUILD_NUMBER}.zip $path
    else
        echo "首次部署,Directory : $path is Empty!!!"
    fi
    
    
    # 删除原目录
    rm -rf $path
    
    # 解压缩
    unzip ${WORKSPACE}/data.zip -d $path
    
    # 启动服务
    systemctl start $servicename
    
    
    
    
    
    
  • 相关阅读:
    MyKTV项目总结
    TCP滑动窗口Sliding Window
    TCP时间戳选项Timestamp
    TCP窗口扩大选项Window Scale
    TCP最大报文段长度MSS
    TCP路径MTU发现
    TCP主动打开 之 第一次握手-发送SYN
    TCP层accept系统调用的实现分析
    Linux TCP套接字选项 之 SO_REUSEADDR && SO_REUSEPORT
    TCP层bind系统调用的实现分析
  • 原文地址:https://www.cnblogs.com/qingshang/p/14012020.html
Copyright © 2011-2022 走看看