环境 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的更多相关文章

  1. CentOS下Docker与.netcore(四)之 三剑客之一Docker-machine+jenkins简单自动化部署

    CentOS下Docker与.netcore(一) 之 安装 CentOS下Docker与.netcore(二) 之 Dockerfile CentOS下Docker与.netcore(三)之 三剑客 ...

  2. 基于 Jenkins Pipeline 自动化部署

    最近在公司推行Docker Swarm集群的过程中,需要用到Jenkins来做自动化部署,Jenkins实现自动化部署有很多种方案,可以直接在jenkins页面写Job,把一些操作和脚本都通过页面设置 ...

  3. gitlab与jenkins的自动化部署(通过webhook与ansilble)

    gitlab与jenkins的自动化部署(通过webhook与ansilble) 1.部署介绍 gitlab服务器:192.168.1.49:80jenkins服务器:192.168.1.49:818 ...

  4. 搭建jenkins实现自动化部署

    搭建jenkins实现自动化部署 一.安装jenkins 1.添加yum repos,然后安装 sudo wget -O /etc/yum.repos.d/jenkins.repo https://p ...

  5. GitHub自动化部署(CD) asp.net core 5.0 项目(免费空间)

    这里我简单介绍一下使用Github自动化部署自己项目到Heroku云服务器上,Heroku竟然是一个很非常老牌的云平台服务商,竟然还没听说过,网上一查2010被Salesforce收购,网上有很多关于 ...

  6. 基于【SpringBoot】的微服务【Jenkins】自动化部署

    最近,也是抽空整理了一些在工作中积累的经验,通过博客记录下来分享给大家,希望能对大家有所帮助: 一.关于自动化部署 关于自动化部署的优点,我就不在这里赘述了:只要想想手工打包.上传.部署.重启的种种, ...

  7. 自动化部署Ruby on Rails应用(docker + jenkins)

    docker安装参考链接docker官网jenkins中文官网 我的博客网站已经迁移到了https://johnnyting.github.io/,如果有兴趣的可以关注下.下面文章格式可能有点乱,可以 ...

  8. docker | jenkins 实现自动化部署项目,后端躺着把运维的钱挣了!(上)

    前言 背景 最近在帮学校导师写项目,团队有4个人,项目前后端分离.如果是选择瀑布式开发:(在约定好接口的情况下)A.B同学写前端,C.D同学写后端,然后约定一个时间统一联调,最后将项目交付安装到客户机 ...

  9. MySQL主从复制原理及配置详细过程以及主从复制集群自动化部署的实现

    一.复制概述 Mysql内建的复制功能是构建大型,高性能应用程序的基础.将Mysql的数据分布到多个系统上去,这种分布的机制,是通过将Mysql的某一台主机的数据复制到其它主机(slaves)上,并重 ...

随机推荐

  1. hdu 1145(Sticks) DFS剪枝

    Sticks Problem Description George took sticks of the same length and cut them randomly until all par ...

  2. mysql中,一个数字加上null,结果为null

    在mysql中,一个数字加上null,结果为null. 这个问题是我用update语句时遇见的,就像下边的例子 update tableName set number = number + x 这里的 ...

  3. FreeRTOS常用函数

    一.任务 任务创建和删除xTaskCreate                                 任务创建xTaskDelete                              ...

  4. Python装饰器、迭代器&生成器、re正则表达式、字符串格式化

    Python装饰器.迭代器&生成器.re正则表达式.字符串格式化 本章内容: 装饰器 迭代器 & 生成器 re 正则表达式 字符串格式化 装饰器 装饰器是一个很著名的设计模式,经常被用 ...

  5. Min25 筛学习笔记

    仅仅是 \(min25\) 筛最基本的方法,没有任何推式子的例题.(想了想还是加两道吧qwq) 这里解决的是 \(Luogu\) 那道模板题. min25 基本方法: 最基础的是两个式子: \[G(n ...

  6. 家庭账本开发day09

    编写数据表格的编辑操作,大体思路和删除操作一样 点击按钮,弹出修改项目,从父窗口获取已有的值赋给 弹出的子窗口中相应的值,在子窗口中点击提交,ajax请求 servlet修改.成功后重载表格,或者up ...

  7. mysql 按照年统计数据并存到新表中

    参考:https://blog.csdn.net/u013201439/article/details/78116575 CREATE TABLE count_year SELECT YEAR(req ...

  8. [刘阳Java]_第一个Java程序_第7讲

    1. 其实第一个Java程序是很简单,但是当自己编写第一个Java程序时候需要注意如下几个内容: 理解Java程序的运行环境 校验你的Java环境变量是否能够运行你所写的第一个Java程序 理解Jav ...

  9. HCNA Routing&Switching之OSPF度量值和基础配置命令总结

    前文我们了解了OSPF的网络类型,OSPF中的DR和BDR的选举规则.作用等相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15054938.html: ...

  10. 数据库连接异常 Caused by: java.sql.SQLException: Unknown system variable 'tx_isolation'

    1.错误截图 2.错误分析 数据库的版本比连接驱动的版本高很多. 3.解决方法 因此将mysql-connector-java升级到最新版本就解决了问题. 原本我的版本是mysql-connector ...