linux+Jenkins+github+docker自动化发布.NET Core

一、Jenkins搭建

(1)下载Jenkins的war包

(方式1)
地址:http://mirrors.jenkins-ci.org/war/
选择最新的下载

image.png

把war包上传到linux目录 \home\jenkins\,可以借助winscp或xftp。


image.png

(方式2)
进入到上面的\home\jenkins下直接输入命令就好了

wget http://mirrors.jenkins.io/war-stable/latest/jenkins.war

(2)安装java jdk

看到war,能知道Jenkins是java写的,所以要安装java,安装java1.8或java11,这里安装java1.8

下载

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

过程中如果遇到以下问题则执行相应命令

#如果wget命令用不了的话,执行以下命令
yum -y install wget 
#如果报Unable to establish SSL connection.执行下面命令
yum install openssl openssl-devel -y

执行完上面3个命令,看下java信息

java -version

看到安装好了


image.png

(3)安装Jenkins

切换到上面的jenkins.war包的目录

cd /home/jenkins
# Jenkins 系统管理-脚本命令行,执行指令,修改时间,保证使用的时区和我们的一致
System.setProperty('org.apache.commons.jelly.tags.fmt.timeZone', 'Asia/Shanghai')
# 下载jenkins.war ,切换到当前目录 执行
#启动,调通前用这个,没问题后再用后台启动,关闭窗体就停止,或ctrl+c停止
java -jar jenkins.war --httpPort=8081
#后台运行 --后台启动,窗体关闭了,也在后台启动
nohup java -jar jenkins.war --httpPort=8081 &
#输入jps 查看当前jenkins启动的进程号
#ps ef|grep jenkins 查询当前启动的jenkins的进程号
#如果要关闭,kill -9 端口号

执行完java -jar jenkins.war --httpPort=8081后,浏览器打开ip:8081


image.png

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

vi /root/.jenkins/secrets/initialAdminPassword

然后到这个界面,用推荐的。
image.png

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

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

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


image.png

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

装完重启
image.png

安装完成。
image.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项目准备

github创建一个仓库
image.png

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

把项目克隆到本地,可以用git客户端,这里用vs2019,需要到github获取一个accessToken。
image.png

成功克隆到本地
image.png

创建一个.NetCore项目,位置放到git克隆目录
image.png

试运行一下
image.png

把项目提交到github,然后推送
image.png

查看github项目提交情况,可以看到项目已经成功提交
image.png

.NetCore项目添加Dockerfile文件,项目鼠标右键=》添加=》docker支持=》Linux。会产生一个Dockerfile文件,在根目录,需要把它移动到外面,和项目文件夹同级
image.png

Dockerfile提交到github
image.png

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

回到jenkins,新建任务
image.png

输入任务名称,然后选择“构建一个自由风格的软件项目”
image.png

进去源码管理选择Git,仓库URL填上面克隆github项目的https地址,因为项目是私有的,还需要在下面添加github用户名密码
image.png

image.png

添加完用户名密码后外面的Credentials下拉框选择刚添加的用户名,发现上面的github地址还是无法连接的,是因为服务器没有安装git客户端
安装git客户端

yum install -y git

安装完git客户端后回去切换一下账户,就可以看到没有错误提示了,下面分支改成main分支,因为github新建项目是默认main分支了。
image.png

构建环境,增加超时时间,这里设10分钟
image.png

构建,执行shell命令
#!/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
image.png
image.png

构建后看到构建成功了
image.png

打开构建的程序的端口,成功打开
image.png

查看linux的docker,也已经有了
image.png

测试下更新,修改下程序,在Welcome后面加上个“_更新”,然后把代码提交到github
image.png

再次点击构建,可以看到构建成功了,中间因为网络原因超时了,因为github是国外网站,所以有时比较慢
image.png

然后打开站点查看内容,看到已经更新了
image.png

到这里就已经可以了,后面的修改就直接改了提交,构建就可以了,github比较慢,公司中一般会搭建自己的gitlab,可以把github的地址换成gitlab的就可以了。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,772评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,458评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,610评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,640评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,657评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,590评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,962评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,631评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,870评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,611评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,704评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,386评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,969评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,944评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,179评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,742评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,440评论 2 342

推荐阅读更多精彩内容