wugang0 2020-06-02
首先需要找一台服务器安装Jenkins,我用的是Linux。启动后直接用IP+端口号访问就可以看到启动动的Jenkisn.
Tips:关于Jenkins的配置,为了方便我是用Linux的root用户登录的,具体配请自行更改。
#安装java环境(Jenkins需要这个java环境) sudo yum install java java -version # 安装Git sudo yum install git git --version #安装Jenkins sudo wget -O /etc/yum.repos.d/jenkins.repo http://jenkins-ci.org/redhat/jenkins.repo sudo rpm --import http://pkg.jenkins-ci.org/redhat/jenkins-ci.org.key yum install jenkins #修改jenkins 的配置信息 vi /etc/sysconfig/jenkins #修改配置 JENKINS_USER="root" JENKINS_PORT:"8080" #修改目录权限 [ sysconfig]# chown -R root:root /var/lib/jenkins [ sysconfig]# chown -R root:root /var/cache/jenkins [ sysconfig]# chown -R root:root /var/log/jenkins #启动Jenkins systemctl start jenkins
实现目的:当前的Jenkins 是安装在192.168.11.80上,需要Jenkins把Git 上拉取的代码发布到 192.168.0.138上。此时138上已经配置好了supervisorctl。也就是说Jenkisn和web服务器没在一个服务器上。
(1)Jenkins安装远程插件(Publish Over SSH) 系统管理->插件管理

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


(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容器------------------------------------完成-----------------------------"