美文网首页
linux+Jenkins+github+docker自动化发布

linux+Jenkins+github+docker自动化发布

作者: 包子wxl | 来源:发表于2021-08-03 23:25 被阅读0次

    一、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的就可以了。

    相关文章

      网友评论

          本文标题:linux+Jenkins+github+docker自动化发布

          本文链接:https://www.haomeiwen.com/subject/nyzsmltx.html