最详细之教你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文件,在根目录,需要把它移动到外面,和项目文件夹同级。

然后提交修改。

把项目推到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的更多相关文章
- CentOS下Docker与.netcore(四)之 三剑客之一Docker-machine+jenkins简单自动化部署
CentOS下Docker与.netcore(一) 之 安装 CentOS下Docker与.netcore(二) 之 Dockerfile CentOS下Docker与.netcore(三)之 三剑客 ...
- 基于 Jenkins Pipeline 自动化部署
最近在公司推行Docker Swarm集群的过程中,需要用到Jenkins来做自动化部署,Jenkins实现自动化部署有很多种方案,可以直接在jenkins页面写Job,把一些操作和脚本都通过页面设置 ...
- gitlab与jenkins的自动化部署(通过webhook与ansilble)
gitlab与jenkins的自动化部署(通过webhook与ansilble) 1.部署介绍 gitlab服务器:192.168.1.49:80jenkins服务器:192.168.1.49:818 ...
- 搭建jenkins实现自动化部署
搭建jenkins实现自动化部署 一.安装jenkins 1.添加yum repos,然后安装 sudo wget -O /etc/yum.repos.d/jenkins.repo https://p ...
- GitHub自动化部署(CD) asp.net core 5.0 项目(免费空间)
这里我简单介绍一下使用Github自动化部署自己项目到Heroku云服务器上,Heroku竟然是一个很非常老牌的云平台服务商,竟然还没听说过,网上一查2010被Salesforce收购,网上有很多关于 ...
- 基于【SpringBoot】的微服务【Jenkins】自动化部署
最近,也是抽空整理了一些在工作中积累的经验,通过博客记录下来分享给大家,希望能对大家有所帮助: 一.关于自动化部署 关于自动化部署的优点,我就不在这里赘述了:只要想想手工打包.上传.部署.重启的种种, ...
- 自动化部署Ruby on Rails应用(docker + jenkins)
docker安装参考链接docker官网jenkins中文官网 我的博客网站已经迁移到了https://johnnyting.github.io/,如果有兴趣的可以关注下.下面文章格式可能有点乱,可以 ...
- docker | jenkins 实现自动化部署项目,后端躺着把运维的钱挣了!(上)
前言 背景 最近在帮学校导师写项目,团队有4个人,项目前后端分离.如果是选择瀑布式开发:(在约定好接口的情况下)A.B同学写前端,C.D同学写后端,然后约定一个时间统一联调,最后将项目交付安装到客户机 ...
- MySQL主从复制原理及配置详细过程以及主从复制集群自动化部署的实现
一.复制概述 Mysql内建的复制功能是构建大型,高性能应用程序的基础.将Mysql的数据分布到多个系统上去,这种分布的机制,是通过将Mysql的某一台主机的数据复制到其它主机(slaves)上,并重 ...
随机推荐
- UI自动化学习笔记- UnitTest单元测试框架详解
一.UnitTest基本使用 1. UnitTest框架 1.1 什么是框架 说明: 框架英文单词frame 为解决一类事情的功能集合 1.2什么是UnitTest框架 概念:UnitTest是pyt ...
- Java:Java多线程实现性能测试
创建多线程和线程池 import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import ...
- WPF教程五:附加依赖项属性
附加依赖项属性是一个属性本来不属于对象自己,但是某些特定场景其他的对象要使用该对象在这种场景下的值.这个值只在这个场景下使用.基于这个需求设计出来的属性.这里主要涉及到一个解耦问题.最大的优势是在特定 ...
- Docker 基础备忘录
Docker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的.可移植的.自给自足的容器.开发者在笔记本上编译测试通过的容器可以批量地在生产环境中部署,包括VMs(虚拟机).bare metal. ...
- 三分钟掌握共享内存 & Actor并发模型
吃点好的,很有必要.今天介绍常见的两种并发模型: 共享内存&Actor 共享内存 面向对象编程中,万物都是对象,数据+行为=对象: 多核时代,可并行多个线程,但是受限于资源对象,线程之间存在对 ...
- Beautifulsoup网页解析——爬取豆瓣排行榜分类接口
我们在网页爬取的过程中,会通过requests成功的获取到所需要的信息,而且,在返回的网页信息中,也是通过HTML代码的形式进行展示的.HTML代码都是通过固定的标签组合来实现页面信息的展示,所以,最 ...
- 【算法学习笔记】概率与期望DP
本文学习自 Sengxian 学长的博客 之前也在CF上写了一些概率DP的题并做过总结 建议阅读完本文再去接着阅读这篇文章:Here 前言 单纯只用到概率的题并不是很多,从现有的 OI/ACM 比赛中 ...
- python -- 模块与类库
一.模块 模块(Module)是由一组类.函数和变量组成的,模块文件的扩展名是.py或.pyc 在使用模块之前,需要先使用import语句导入这个模块. 语法格式如下: import 模块名 from ...
- AntDesignBlazor 学习笔记
AntDesignBlazor是基于 Ant Design 的 Blazor 实现,开发和服务于企业级后台产品.我的 Blazor Server 学习就从这里开始,有问题可以随时上 Blazor 中文 ...
- 第3天 IDEA 2021简单设置与优化 Java运算符 包机制
IDEA 2021简单设置与优化 将工具条显示在上方 View–>Appearance–>Toolbar 鼠标悬停显示 File–>setting–>Editor–>Ge ...