zoukankan      html  css  js  c++  java
  • Jenkins 自动部署 Net Core

    目的:实现把Git测试分支中的代码发布到Linux测试环境

    1、安装Jenkins。

    首先需要找一台服务器安装Jenkins,我用的是Linux。启动后直接用IP+端口号访问就可以看到启动动的Jenkisn.

    Tips:关于Jenkins的配置,为了方便我是用Linux的root用户登录的,具体配请自行更改。

     1 #安装java环境(Jenkins需要这个java环境)
     2 sudo yum install java
     3 java -version
     4 
     5 # 安装Git
     6 sudo yum install git
     7 git --version 
     8 
     9 #安装Jenkins
    10 sudo wget -O /etc/yum.repos.d/jenkins.repo http://jenkins-ci.org/redhat/jenkins.repo
    11 sudo rpm --import http://pkg.jenkins-ci.org/redhat/jenkins-ci.org.key
    12 yum install jenkins
    13 
    14 #修改jenkins 的配置信息
    15 vi /etc/sysconfig/jenkins
    16 
    17 #修改配置
    18 JENKINS_USER="root"
    20 JENKINS_PORT:"8080"
    21 
    22 #修改目录权限
    23  [root@localhost sysconfig]# chown -R root:root /var/lib/jenkins
    24 [root@localhost sysconfig]# chown -R root:root /var/cache/jenkins
    25 [root@localhost sysconfig]# chown -R root:root /var/log/jenkins
    26 
    27 #启动Jenkins
    28 systemctl start jenkins

    2、配置Jenkins

    实现目的:当前的Jenkins 是安装在192.168.11.80上,需要Jenkins把Git 上拉取的代码发布到 192.168.0.138上。此时138上已经配置好了supervisorctl。也就是说Jenkisn和web服务器没在一个服务器上。

    (1)Jenkins安装远程插件(Publish Over SSH) 系统管理->插件管理

     (2)配置远程服务器链接(此处用的是密码用户用的rooot)系统管理->系统配置

    3、新建一个Jenkins任务(或复制一个已有的任务)

     (1)配置Git

     

     

     构建就可以了

    如你的web服务器是用Docker发布的,Jenkins的执行Shell,你可以参考一下

    echo "获取当前容器是否存在-----------------------------------------------------------------"
    containerps=$(docker ps -f name=resapi -q)
    containerstop=$(docker ps -a -f name=resapi -q)
    for alpha in "$containerps";do
        if [ "$alpha" == "" ];then
        echo "检查是否存在停止的容器-------------------------------------------------"
            for alpha1 in "$containerstop";do
              if [ "$alpha1" == "" ];then
              echo "不存指定容器-----------------------------------"
              else
              echo "存在停止了的 然后直接删除-----------开始------------------"
              docker rm $alpha1
              echo "存在停止了的 然后直接删除-----------完成------------------"
            fi
           done
        else
        echo "存在-停止运行 然后删除----------------------开始-----------------"
        docker stop $alpha
        docker rm $alpha
         echo "存在-停止运行 然后删除---------------------完成------------------"
        fi
    done
    
    echo "获取当前镜像是否存在-----------------------------------------------------------------"
    dockerlist=$(docker images resapiimage:latest -q)
    for alpha2 in "$dockerlist";do
      if [ "$alpha2" == "" ];then
         echo "不存在指定镜像-------------------------------------------------" 
      else
           echo "存在当前指定的镜像 删除镜像--------------开始-----------------------------------"
          docker rmi $alpha2
         echo "存在当前指定的镜像 删除镜像--------------完成-----------------------------------"
      fi
    done
    
    echo "开始输入工作目录-----------------------------------------------------------------"
    echo $WORKSPACE
    
    echo "转到项目工程目录-----------------------------------------------------------------"
    cd $WORKSPACE/AoJi.Res/
    
    
    echo "重新生成------------------------------------开始-----------------------------"
    dotnet build
    echo "重新生成------------------------------------完成-----------------------------"
    
    echo "项目发布-------------------------------------开始----------------------------"
    dotnet publish --output /data/www/resapi.aojiedu.com/
    echo "项目发布-------------------------------------完成----------------------------"
    
    echo "转到项目发布目录-----------------------------------------------------------------"
    cd  /data/www/resapi.aojiedu.com/
    
    echo "构建Docker镜像-------------------------------开始----------------------------------"
    echo pwd
    docker build -t resapiimage .
    echo "构建Docker镜像-------------------------------完成----------------------------------"
    
    echo "运行Docker容器-------------------------------------开始----------------------------"
    docker run  --name=resapi -p 5001:5001 -d resapiimage
    echo "运行Docker容器------------------------------------完成-----------------------------"

  • 相关阅读:
    less 28-31
    less27 27a
    sqli 26 26a
    sqli lab 25 25a
    kail 更新源
    sqli lab 23 、24
    less 20 21 22
    less18 19
    less 17
    数字类型,字符串类型,列表类型
  • 原文地址:https://www.cnblogs.com/songl/p/13030334.html
Copyright © 2011-2022 走看看