热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

Jenkins自动部署NetCore过程图解

这篇文章主要介绍了Jenkins自动部署NetCore过程图解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

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

1、安装Jenkins。

首先需要找一台服务器安装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"
 
 #修改目录权限
 [root@localhost sysconfig]# chown -R root:root /var/lib/jenkins
 [root@localhost sysconfig]# chown -R root:root /var/cache/jenkins
 [root@localhost sysconfig]# chown -R root:root /var/log/jenkins
 
 #启动Jenkins
 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容器------------------------------------完成-----------------------------"

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


推荐阅读
  • 使用Jenkins构建Java项目实践指南
    本指南详细介绍了如何使用Jenkins构建Java项目,包括环境搭建、工具配置以及项目构建的具体步骤。 ... [详细]
  • 网络运维工程师负责确保企业IT基础设施的稳定运行,保障业务连续性和数据安全。他们需要具备多种技能,包括搭建和维护网络环境、监控系统性能、处理突发事件等。本文将探讨网络运维工程师的职业前景及其平均薪酬水平。 ... [详细]
  • 在现代网络环境中,两台计算机之间的文件传输需求日益增长。传统的FTP和SSH方式虽然有效,但其配置复杂、步骤繁琐,难以满足快速且安全的传输需求。本文将介绍一种基于Go语言开发的新一代文件传输工具——Croc,它不仅简化了操作流程,还提供了强大的加密和跨平台支持。 ... [详细]
  • Jenkins更新指南
    本文档详细介绍了如何准备和执行Jenkins的升级过程,包括从官方源下载最新镜像、镜像的本地处理与上传至私有仓库,以及通过修改配置文件和重启服务完成Jenkins的版本更新。 ... [详细]
  • 本文详细介绍了 Dockerfile 的编写方法及其在网络配置中的应用,涵盖基础指令、镜像构建与发布流程,并深入探讨了 Docker 的默认网络、容器互联及自定义网络的实现。 ... [详细]
  • 掌握远程执行Linux脚本和命令的技巧
    本文将详细介绍如何利用Python的Paramiko库实现远程执行Linux脚本和命令,帮助读者快速掌握这一实用技能。通过具体的示例和详尽的解释,让初学者也能轻松上手。 ... [详细]
  • 从零开始构建完整手机站:Vue CLI 3 实战指南(第一部分)
    本系列教程将引导您使用 Vue CLI 3 构建一个功能齐全的移动应用。我们将深入探讨项目中涉及的每一个知识点,并确保这些内容与实际工作中的需求紧密结合。 ... [详细]
  • 本文详细介绍了Java中org.eclipse.ui.forms.widgets.ExpandableComposite类的addExpansionListener()方法,并提供了多个实际代码示例,帮助开发者更好地理解和使用该方法。这些示例来源于多个知名开源项目,具有很高的参考价值。 ... [详细]
  • 本文详细介绍了Java编程语言中的核心概念和常见面试问题,包括集合类、数据结构、线程处理、Java虚拟机(JVM)、HTTP协议以及Git操作等方面的内容。通过深入分析每个主题,帮助读者更好地理解Java的关键特性和最佳实践。 ... [详细]
  • 本文深入探讨了Linux系统中网卡绑定(bonding)的七种工作模式。网卡绑定技术通过将多个物理网卡组合成一个逻辑网卡,实现网络冗余、带宽聚合和负载均衡,在生产环境中广泛应用。文章详细介绍了每种模式的特点、适用场景及配置方法。 ... [详细]
  • 本文详细分析了Hive在启动过程中遇到的权限拒绝错误,并提供了多种解决方案,包括调整文件权限、用户组设置以及环境变量配置等。 ... [详细]
  • 使用Vultr云服务器和Namesilo域名搭建个人网站
    本文详细介绍了如何通过Vultr云服务器和Namesilo域名搭建一个功能齐全的个人网站,包括购买、配置服务器以及绑定域名的具体步骤。文章还提供了详细的命令行操作指南,帮助读者顺利完成建站过程。 ... [详细]
  • 解决微信电脑版无法刷朋友圈问题:使用安卓远程投屏方案
    在工作期间想要浏览微信和朋友圈却不太方便?虽然微信电脑版目前不支持直接刷朋友圈,但通过远程投屏技术,可以轻松实现在电脑上操作安卓设备的功能。 ... [详细]
  • MySQL缓存机制深度解析
    本文详细探讨了MySQL的缓存机制,包括主从复制、读写分离以及缓存同步策略等内容。通过理解这些概念和技术,读者可以更好地优化数据库性能。 ... [详细]
  • 解决Jenkins实例离线问题的新方法
    针对新版Jenkins镜像遇到的‘实例离线’问题,本文提供了一种通过调整Linux系统防火墙设置的有效解决方案,旨在为遇到类似问题的用户提供新的思路和帮助。 ... [详细]
author-avatar
郭彦伶克瑞雅书
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有