最详细之教你Jenkins+github自动化部署.Net Core程序到Docker目录
环境 centos7.9,.NET5
回到顶部
一、Jenkins搭建
1)下载Jenkins的war包
在\home目录建一个jenkins目录放jenkins的包
#进入\home目录 cd \home #创建 jenkins目录 mkdir jenkins
在jenkins目录下载war包
#进入jenkin目录 cd \home\jenkins #下载jenkins的war包 wget http://mirrors.jenkins.io/war-stable/latest/jenkins.war
如果包wget命令用不了的话,安装一下
#如果wget命令用不了的话,执行以下命令 yum -y install wget
下载完后jenkins目录下产生一个jenkins.war文件
2)安装java jdk
看到war,可以知道jenkins是java写的,所以要安装java,官网上提示安装java1.8或java11,这里安装java1.8
#下载java jdk的rpm文件 wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" \ http://download.oracle.com/otn-pub/java/jdk/8u301-b09/d3c52aa6bfa54d3ca74e617f18309292/jdk-8u301-linux-x64.rpm #授权限 chmod +x jdk-8u301-linux-x64.rpm #安装 rpm -ivh jdk-8u301-linux-x64.rpm
如果报 Unable to establish SSL connection 执行一下下面命令
#如果报Unable to establish SSL connection.执行下面命令 yum install openssl openssl-devel -y
执行完上面3个命令,看下java版本信息
java -version
看到已经安装好了
3)安装Jenkins
进入到上面的jenkins.war包的目录\home\jenkins
#启动,调通前用这个,没问题后再用后台启动,关闭窗体就停止,或ctrl+c停止 #java -jar jenkins.war --httpPort=8081 #后台运行 --后台启动,窗体关闭了,也在后台启动 nohup java -jar jenkins.war --httpPort=8081 & #输入jps 查看当前jenkins启动的进程号 #ps ef|grep jenkins 查询当前启动的jenkins的进程号 #如果要关闭,kill -9 端口号
执行上面命令中的 nohup java -jar jenkins.war --httpPort=8081 & 后,浏览器打开ip:8081,这里安装过程要小等一会才能打开
然后按提示命令打开 vi /root/.jenkins/secrets/initialAdminPassword 文件把密码复制到输入框上
vi /root/.jenkins/secrets/initialAdminPassword
然后到这个界面,如果不熟悉,就用推荐的。
一直等待安装完,如果有失败是网络原因,重试就能装上了。
装完后跳到这个界面,输入用户名密码,邮件。
然后到这个界面,直接保存。
然后开始使用,来到jenkins界面,右上方有个铃,点击升级。
装完重启
安装完成。
如果遇到升级慢的问题解决
1、修改/home/jenkins/hudson.model.UpdateCenter.xml文件
vi /home/jenkins/hudson.model.UpdateCenter.xml
修改为:
<sites><site><id>default</id> <url>http://mirror.xmission.com/jenkins/updates/update-center.json</url></site> </sites>
2、设置 default.json 权限 安装插件什么的时候,不需要google.com,改成百度
cd /root/.jenkins/updates/
然后执行下面的
sed -i 's/http:\/\/updates.jenkins�ci.org\/download/https:\/\/mirrors.tuna.tsinghua.edu .cn\/jenkins/g' default.json && sed -i 's/http:\/\/www.google.com/https:\/\/www.baidu.com/g ' default.json
修改完之后,需要重新启动
回到顶部
二、github .NetCore项目准备
github创建一个私有仓库
创建完后进入仓库,把地址复制出来
把项目克隆到本地,这里用vs2019的git功能
点克隆后会弹出一个github的授权页面授权给vs,然后成功把项目克隆到本地。
创建一个.NetCore程序,并放到刚才克隆的目录
运行一下查看界面
因为我们要把.NetCore程序部署到Docker,所以建一个DockerFile文件
点了后会会产生一个Dockerfile文件,在根目录,需要把它移动到外面,和项目文件夹同级。
Dockerfile的内容是vs自动生成的,内容如下,注意一下路径。
然后提交修改。
把项目推到github
打开githug看到项目已经提交成功
回到顶部
三、服务器git客户端安装
回到服务器,执行安装git客户端命令
#安装git客户端 yum install -y git
安装完客户端后,执行命令生成ssh key命令,一直回车确认即可。
#生成ssh key ssh-keygen -t rsa -C '284743503@qq.com'
执行完命令后,可以看到把ssh key生成到了/root/.ssh目录下了,id_rsa文件为私钥,id_rsa.pub为公钥。
执行vi /root/.ssh/id_rsa.pub打开公钥。
把上面的公钥复制到github上的ssh key里。
回到顶部
四、Jenkins自动化构建任务创建
回到jenkins,新建任务
输入任务名称,构建自由风格项目
进去源码管理,选择Git,仓库URL填上面克隆github项目的ssh地址,因为项目是私有的,因为是私有的,所以也要把git的私钥凭证加进来。
复制github上的地址
填到jenkins的git上,把分支改为github的默认main分支,然后添加github凭证。
凭证填上面的id_rsa文件里面的私钥,命令 vi /root/.ssh/id_rsa然后复制里面的私钥填到sshkey凭证里面。
配置完后外面选刚才的配置。
构建环境,把超时时间设10分钟,因为访问github网络可能会有点慢,项目文件大的时候拉取需要时间。
构建,选择执行shell命令,命令如下,生成docker镜像,然后运行容器实例,然后完成。
#!/bin/bash # 获取短版本号 GITHASH=`git rev-parse --short HEAD` echo ---------------开始编译程序...------------------ echo ---------------Building Docker Image...-------- ---------- docker build -t jkdemo:$GITHASH . docker tag jkdemo:$GITHASH jkdemo:latest echo ---------------Launching Container...---------- -------- docker rm -f jkdemo1 docker run -d -p 5001:80 --name jkdemo1 jkdemo:latest
在这个任务下点击立即构建,就会自动拉取代码,然后执行里面的shell命令发布。
构建成功
访问部署的.NetCore ,ip:5001,访问成功
更新站点,提交
再点击立即构建,构建成功,点进去还能看到提交的内容
再访问站点,发现更新了。
后面的修改,提交后,只需要点击构建就可以自动发布啦!公司中一般都是用自己搭的gitlab,只要把github的操作换成gitlab,操作过程也是一样的。
最详细之教你Jenkins+github自动化部署.Net Core程序到Docker目录相关推荐
- springboot 使用Jenkins实现自动化部署
springboot 使用Jenkins实现自动化部署 简介 Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持 ...
- gitlab与jenkins的自动化部署(通过webhook与ansible)
gitlab与jenkins的自动化部署(通过webhook与ansilble) 1.部署介绍 gitlab服务器:192.168.1.49:80 jenkins服务器:192.168.1.49:81 ...
- JenKins使用pm2部署.net core网站
JenKins使用pm2部署.net core网站 原文:JenKins使用pm2部署.net core网站 登录事先准备好的 Jenkins 1 新建任务 2 源码管理 git 输入正确地址 3 构 ...
- [小题大做] Github + Jenkins 实现自动化部署 hexo 博客静态文件
使用jenkins来部署hexo简直就是小题大做,但是偶尔这样小题大做还真有折腾的乐趣 背景 jianyujianyu.com之前是使用typecho做博客的. 原因很简单,wordpress太重,h ...
- 基于Docker、Jenkins实现自动化部署
概述 最近在写一个基于SpringBoot的小项目,由于每次部署到服务器都需要经历几个繁琐的过程,随在自己的服务器上安装了Jenkins和Docker实现自动化部署.至此,将整个过程记录如下. 安装与 ...
- 使用Jenkins实现自动化部署
一.原理 开发人员提交完代码至版本控制器后,由Jenkins自动获取远程代码,自动打包,然后再自动发布的过程. 二.使用Docker安装Jenkins 前提是linux中已经安装Docker,再执行以 ...
- 搭建Jenkins实现自动化部署环境
大家好,我是阿飞云 怕什么真理无穷,进一步有近一步的欢喜 本文是团队内小兄弟的学习笔记整理而来.看完本文大体了解为什么要使用Jenkins,部署Jenkins依赖的环境,以及如何用Jenkins进 ...
- 分布式电商项目——16.基于Docker+Jenkins实现自动化部署
参考文档:https://blog.csdn.net/ming19951224/article/details/80958761 https://blog.csdn.net/cdszdd8/artic ...
- 自动部署静态html,手把手教你用 GitHub 来部署静态网页
在尝试过用 GitHub 部署静态 HTML 网页后,觉得其实挺容易的,这里简单说说如何用 GitHub 来完成部署. 1.首先我新建了一个版本库作为 demo,然后点击settings 2.选择 G ...
最新文章
- 前端之图形学-2 着色器
- python与pyqt5_【Python开发】PyQt5应用与实践
- 全球 IPv4 地址耗尽,IPv6 来了!
- Java HashSet的实现原理详解
- leetcode991. 坏了的计算器(贪心)
- selenium+chromeheadless爬取网站
- php mysql 复制数据库表结构图_MySQL_Mysql复制表结构、表数据的方法,本文给大家分享了好几种复制 - phpStudy...
- Vue项目上传github并预览
- [洛谷P3919]【模板】可持久化数组
- 通过Keepalived实现Redis Failover自动故障切换功能[实践分享]
- html 组件化 编辑器,纯前端表格控件SpreadJS V14.0发布:组件化编辑器+数据透视表...
- 计算机科学美国大学专业,2015年U.S.NEWS计算机科学专业美国大学排名
- 论文写作中插入公式间距变大怎么办?
- sqlyog错误号码2058解决方式
- 1197:山区建小学
- 你好,WeDataSphere!
- C 语言结构体数组指针以及函数
- 导出手机apk底层数据库
- Google PR值
- Flink跟着问题读源码 - SlidingEventTimeWindows接reduce结果数据倍增
热门文章
- iOS新特性框架、仿微信图片浏览、视频监控、爱心动画、文字适配等源码
- 重磅!国内最全的3D视觉学习资料已开源
- 平板电脑 中柏4s pro 重装win10 系统
- 通过 WebRTC 共享屏幕很容易
- 基于单片机体温心率检测仪系统设计(毕业)资料
- 盘点2019大佬申请证书,快来盘算下你的职业生涯
- Python 列表元组拆分为多个列表
- ELK日志分析平台(一)—elasticsearch安装及配置、elasticsearch图形化插件安装
- mysql金额数字转成中文_数字金额大写转换(可以处理整数,小数,负数)
- HPC走出全新路线:《开放架构HPC技术与生态白皮书》注解