欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

asp.netcore+jenkins+docker+svn+centos7.2 持续集成,每天凌晨获取最新代码打包发布

程序员文章站 2022-12-10 23:47:56
运行环境: 一.安装jenkins运行环境 1. 查看yum库中的Java安装包 2.yum -y list java* 3.选择一个适合的版本进行安装我们这里选择的是1.8.0的版本进行演示 4.查看jdk是否安装成功 二.安装JenKins 1.我们采用wget方式安装jenkins 2.用如下 ......

运行环境:

  1. centos7.2服务器或则虚拟机
  2. 可以是腾讯云也可以是内网服务器,(如果是内网服务器需要用frp做内网穿透,这样才可以通过外网访问该服务器)
  3. svnserver 来托管代码

一.安装jenkins运行环境

1. 查看yum库中的java安装包

2.yum -y list java*

asp.netcore+jenkins+docker+svn+centos7.2 持续集成,每天凌晨获取最新代码打包发布

3.选择一个适合的版本进行安装我们这里选择的是1.8.0的版本进行演示

yum -y install java-1.8.0-openjdk*

4.查看jdk是否安装成功

java -version

asp.netcore+jenkins+docker+svn+centos7.2 持续集成,每天凌晨获取最新代码打包发布

二.安装jenkins

1.我们采用wget方式安装jenkins

yum -y install wget

2.用如下代码查看wget是否安装成功

rpm -qa|grep "wget"

asp.netcore+jenkins+docker+svn+centos7.2 持续集成,每天凌晨获取最新代码打包发布

上图表示安装成功

3.参考:https://www.imooc.com/article/43528  按步骤完成安装

4.使用以下命令安装jenkins

$ sudo wget -o /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo
$ sudo rpm –import https://jenkins-ci.org/redhat/jenkins-ci.org.key
$ yum install jenkins

5.修改jenkins默认端口。默认是8080。当被占用时我们改成其他端口以便使用,我们这里手动改为8090

$ vim /etc/sysconfig/jenkins 

找到jenkins_port="8090" 可以改成未被占用的端口号

 6.配置权限

为了不因为权限出现各种问题,这里直接使用root

修改用户为root

$ vim /etc/sysconfig/jenkins

# 修改配置
$jenkins_user="root"

# 修改目录权限

$ chown -r root:root /var/lib/jenkins
$ chown -r root:root /var/cache/jenkins
$ chown -r root:root /var/log/jenkins

重启

$ service jenkins restart
$ ps -ef | grep jenkins

7.启动jenkins

$ systemctl start jenkins
验证启动状态
$ systemctl status jenkins

如图所以启动成功

asp.netcore+jenkins+docker+svn+centos7.2 持续集成,每天凌晨获取最新代码打包发布

8.jenkins运行成功后然后访问jenkins http://ip:8090

cat /var/lib/jenkins/secrets/initialadminpassword
查看jenkins密码,然后输入到密码框
然后一直下一步安装就可以

9.然后进入到如下页面

asp.netcore+jenkins+docker+svn+centos7.2 持续集成,每天凌晨获取最新代码打包发布

10.创建一个*风格的任务

asp.netcore+jenkins+docker+svn+centos7.2 持续集成,每天凌晨获取最新代码打包发布

 

11.源码管理配置

 

asp.netcore+jenkins+docker+svn+centos7.2 持续集成,每天凌晨获取最新代码打包发布

12.编写dockerfile

# 编译docker镜像
from microsoft/aspnetcore-build as build-env
maintainer xiaoyukeji
workdir /source
copy ./jenkinstest /source

workdir /source/jenkinstest

run dotnet restore --verbosity q

run dotnet publish -c release -o /source/publish

# pc端镜像
from microsoft/aspnetcore
workdir /app
copy --from=build-env /source/publish ./

run /bin/cp /usr/share/zoneinfo/asia/shanghai /etc/localtime && echo 'asia/shanghai' >/etc/timezone

expose 5001/tcp

entrypoint ["dotnet", "jenkinstest.dll"]

13.编写shell脚本

echo 打包镜像
docker build --force-rm=true --rm -f dockerfile_pc -t jenkinstest_pc ../
echo 删除镜像
docker rm -f jenkinstest_pc
echo 运行镜像
docker run -p 5001:5001 --name jenkinstest_pc -d jenkinstest_pc
echo 删除镜像名称为none的镜像
docker images|grep -wn none|awk '{print $3 }'|xargs docker rmi

14.配置定时器(jenkins cron表达式,这表示每天凌晨拉去svn最新代码进行发布)

asp.netcore+jenkins+docker+svn+centos7.2 持续集成,每天凌晨获取最新代码打包发布

 

 15.执行shell进行构建

asp.netcore+jenkins+docker+svn+centos7.2 持续集成,每天凌晨获取最新代码打包发布

 

 16.jenkins构建过程

asp.netcore+jenkins+docker+svn+centos7.2 持续集成,每天凌晨获取最新代码打包发布

 

 

 

asp.netcore+jenkins+docker+svn+centos7.2 持续集成,每天凌晨获取最新代码打包发布

asp.netcore+jenkins+docker+svn+centos7.2 持续集成,每天凌晨获取最新代码打包发布

 

 17.访问我们刚才发布的网站:http://118.24.60.212:5001/(这个是我自己的腾讯云,大家可以访问)

 18.最后谢谢大家的支持。谢谢大家

asp.netcore+jenkins+docker+svn+centos7.2 持续集成,每天凌晨获取最新代码打包发布