记录.NET Core在CentOS上基于Jenkins自动化发布
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创建,
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.
查看运行的容器,直接访问就ok了