.NET Core + Jenkins + Github 自动化部署到 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文件

193f84b4aaac9288313d3fdc58d5ea00.png

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

看到已经安装好了

39f1395f134fa6b1fac43b4a6bc6665b.png


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,这里安装过程要小等一会才能打开

2ef8e7178affe01fcc2d913edbddf8ff.png

然后按提示命令打开 vi /root/.jenkins/secrets/initialAdminPassword 文件把密码复制到输入框上

vi /root/.jenkins/secrets/initialAdminPassword

然后到这个界面,如果不熟悉,就用推荐的。

d14a05c86ea3c45b50d85c96e3d6ddd3.png

一直等待安装完,如果有失败是网络原因,重试就能装上了。

fc75adbad8321dfc7c33e3a69001e94f.png

装完后跳到这个界面,输入用户名密码,邮件。

4ae20187b2591153cf8bfc86d0cdb542.png

然后到这个界面,直接保存。

417079237001968844428c86a2814a67.png

然后开始使用,来到jenkins界面,右上方有个铃,点击升级。

f6f0ce5c63673ca27dc5a17cf2683d42.png

装完重启

291670636532b5df0a54734e606994d8.png

安装完成。

88245cc7253a71b4e94a669e2aa45865.png

如果遇到升级慢的问题解决

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 .NET Core项目准备

github创建一个私有仓库

31c4b825fdda19fde469f55fff5d28ba.png

创建完后进入仓库,把地址复制出来

6893b7a2aeba058f665bc593d118d03d.png

把项目克隆到本地,这里用vs2019的git功能

09630645deb19fe8cc68103d1d334535.png

点克隆后会弹出一个github的授权页面授权给vs,然后成功把项目克隆到本地。

3ba45eef2f1f7ac27dceb9ab526f8c71.png

创建一个.NetCore程序,并放到刚才克隆的目录

ebe07a1bb9e66e02b6cd9026341b2f89.png

运行一下查看界面

2034864df4d242697007cdd162f5bfa8.png

因为我们要把.NetCore程序部署到Docker,所以建一个DockerFile文件

17e8e87c21c43d5b675cb94f69ef6e39.png

点了后会会产生一个Dockerfile文件,在根目录,需要把它移动到外面,和项目文件夹同级。

1dc1157800662f53524f0b3aeb3a87d7.png

然后提交修改。

f137ac930758b64e095a9a0b4a8d4130.png

把项目推到github

5a7d9d561548399cf999c61b05fff65c.png

打开githug看到项目已经提交成功

748c95217f808276d03c9a330718b021.png

三、服务器git客户端安装

回到服务器,执行安装git客户端命令

#安装git客户端
yum install -y git

安装完客户端后,执行命令生成ssh key命令,一直回车确认即可。

#生成ssh key
ssh-keygen -t rsa -C '284743503@qq.com'
83fda57b8446f221238d4165e11f8618.png

执行完命令后,可以看到把ssh key生成到了/root/.ssh目录下了,id_rsa文件为私钥,id_rsa.pub为公钥。

执行vi /root/.ssh/id_rsa.pub打开公钥。

064f9b38fa96cb7fea8337dd4f66808a.png

把上面的公钥复制到github上的ssh key里。

d09fe3ad349e8418ad3f8e0556cda94f.png 3f688232a28312d4d42e68de646f8a54.png

四、Jenkins自动化构建任务创建

回到jenkins,新建任务

81205432a905aea93e5ac8b3de412065.png

输入任务名称,构建自由风格项目

10a01228805cda0b96aff6683f12ef72.png

进去源码管理,选择Git,仓库URL填上面克隆github项目的ssh地址,因为项目是私有的,因为是私有的,所以也要把git的私钥凭证加进来。

复制github上的地址

82df965d7bd088cc5a2f862b51696cb8.png

填到jenkins的git上,把分支改为github的默认main分支,然后添加github凭证。

aa0f69b70638da2d9c26de261c10f942.png

凭证填上面的id_rsa文件里面的私钥,命令 vi /root/.ssh/id_rsa然后复制里面的私钥填到sshkey凭证里面。

d251c57f989d2f048161060a56af83e2.png

配置完后外面选刚才的配置。

9980500b71607d2f205268a64c29e9a5.png

构建环境,把超时时间设10分钟,因为访问github网络可能会有点慢,项目文件大的时候拉取需要时间。

410241c5388e9fdf9080a950ad53605b.png

构建,选择执行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
b41c6eceb9fa9bb647120158aacd9f99.png

在这个任务下点击立即构建,就会自动拉取代码,然后执行里面的shell命令发布。

adaf31cb9ecf3466b7c68b724870eb1c.png

构建成功

39e035291d20f65f418fa7161d5c8d18.png

访问部署的.NetCore ,ip:5001,访问成功

50a5ee23eb47e77f05e8ae95d30ebefd.png

更新站点,提交

0464a84e0d0c2efdca5243da84f3a859.png f3b4f66319bc3ceb245d555ba27959a3.png

再点击立即构建,构建成功,点进去还能看到提交的内容

2b80f27e3f29e7698a414cb611a32aeb.png 450f024c1cd517b521bd115cf7091973.png

再访问站点,发现更新了。

9ad5874df02c11688b2268142cae7b2e.png

后面的修改,提交后,只需要点击构建就可以自动发布啦!公司中一般都是用自己搭的gitlab,只要把github的操作换成gitlab,操作过程也是一样的。

转自:包子wxl

链接:cnblogs.com/wei325/p/15154918.html

- EOF -

技术群:添加小编微信dotnet999

公众号:dotnet讲堂

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值