欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

记录.NET Core在CentOS上基于Jenkins自动化发布

程序员文章站 2022-04-08 19:05:36
1.安装Jenkins,我这里采用的是非docker方式安装(两种都行,任选一种) 参考:https://www.cnblogs.com/xiaxiaolu/p/10357806.html https://www.cnblogs.com/stulzq/p/9291237.html 如果安装成功出现页 ......

1.安装jenkins,我这里采用的是非docker方式安装(两种都行,任选一种)

参考:https://www.cnblogs.com/xiaxiaolu/p/10357806.html

https://www.cnblogs.com/stulzq/p/9291237.html

如果安装成功出现页面不显示或者空白等,是权限配置不对

进入:/var/lib/jenkins/config.xml修改将这个两个改成以下配置即可访问。之后可直接在系统设置里面修改

<authorizationstrategy class="hudson.security.authorizationstrategy$unsecured"/>

<securityrealm class="hudson.security.securityrealm$none"/>

2.首先创建一个项目上传到github、gitlab或其他,

我自己的github测试地址:https://github.com/476515159/jenkinstest.git

3.然后创建在jenkins创建,

记录.NET Core在CentOS上基于Jenkins自动化发布

记录.NET Core在CentOS上基于Jenkins自动化发布

记录.NET Core在CentOS上基于Jenkins自动化发布

shell脚本:

echo "获取当前容器是否存在-----------------------------------------------------------------"
containerps=$(docker ps -f name=exam_node1 -q)
containerstop=$(docker ps -a -f name=exam_node1 -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 examimage: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/test2/
echo "还原.netcore nuget包-----------------------开始------------------------------------------"
dotnet restore
echo "还原.netcore nuget包-----------------------完成------------------------------------------"
echo "重新生成------------------------------------开始-----------------------------"
dotnet build
echo "重新生成------------------------------------完成-----------------------------"
echo "项目发布-------------------------------------开始----------------------------"
dotnet publish -c release
echo "项目发布-------------------------------------完成----------------------------"
echo "转到项目发布目录-----------------------------------------------------------------"
cd bin/release/netcoreapp2.1/publish/
echo "构建docker镜像-------------------------------开始----------------------------------"
docker build -t examimage .
echo "构建docker镜像-------------------------------完成----------------------------------"
echo "运行docker容器-------------------------------------开始----------------------------"
docker run  --name=exam_node1 -p 40002:80 -d examimage
echo "运行docker容器------------------------------------完成-----------------------------"

4.其中路径,镜像名称,端口等自定义修改就行了。

然后立即构建,完成。

5.记录.NET Core在CentOS上基于Jenkins自动化发布

查看运行的容器,直接访问就ok了