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

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

(方式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
看到安装好了

(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

然后按提示命令打开 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项目准备
github创建一个仓库
创建完后进入仓库,把地址复制出来

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

成功克隆到本地

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

试运行一下

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

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

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

Dockerfile提交到github

三、Jenkins自动化构建任务创建
回到jenkins,新建任务
输入任务名称,然后选择“构建一个自由风格的软件项目”

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


添加完用户名密码后外面的Credentials下拉框选择刚添加的用户名,发现上面的github地址还是无法连接的,是因为服务器没有安装git客户端
安装git客户端
yum install -y git
安装完git客户端后回去切换一下账户,就可以看到没有错误提示了,下面分支改成main分支,因为github新建项目是默认main分支了。

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

构建,执行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


构建后看到构建成功了

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

查看linux的docker,也已经有了


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

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

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