码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Docker+jenkins+Gitee+Maven构建自动化部署


    Jenkins的环境构建和项目自动化部署

        • docker-compose部署配置jenkins
          • 步骤1:Docker下载jenkins镜像并运行容器
          • 步骤2:访问jenkins
            • 2.1.jekins访问:
            • 2.2.进入jenkins获取密码
          • 步骤3.选择jenkins 安装推荐的插件
          • 步骤4.选择 jenkins 安装插件
          • 步骤5:配置JDK和Maven
        • 构建第一个任务
          • 1.将自己代码上传到码云上。
          • 2.构建一个任务
          • 3.配置构建后的shell脚本,再重新构建
          • 4.访问

    docker-compose部署配置jenkins

    步骤1:Docker下载jenkins镜像并运行容器

    注意:-p 50000:50000建议提前映射为项目的端口号,如8087:8087

    docker run -p 8080:8080 -p 50000:50000 -v Jenkins_data:/var/Jenkins_home jenkinsci/blueocean
    
    • 1

    步骤2:访问jenkins

    2.1.jekins访问:

    (注意:不要傻乎乎用别人的ip访问)
    http://192.168.75.129:8080/login?from=%2F
    在这里插入图片描述

    2.2.进入jenkins获取密码

    docker exec -it jenkins /bin/bash 获取该密码。注:可用docker ps获取容器id,再使用docker exec -it容器id /bin/bash
    cat /var/jenkins_home/secrets/initialAdminPassword获取密码
    在这里插入图片描述

    步骤3.选择jenkins 安装推荐的插件

    在这里插入图片描述

    • 加载插件(大概需要花费3-5分钟左右)
      在这里插入图片描述

    • 创建一个管理员的用户
      在这里插入图片描述

    root
    root
    root
    mayikt
    mayikt@qq.com
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    步骤4.选择 jenkins 安装插件

    安装插件:
    所需的插件:
    • Maven插件 Maven Integration plugin (只安装这个,,安装之前先在可更新选项卡升级JUnit Plugin,否则可能会失败)
    搜索: Maven Integration plugin
    在这里插入图片描述

    步骤5:配置JDK和Maven

    JDK用jenkins容器内部的
    在这里插入图片描述
    取消勾选自动安装,jenkins容器内部有,进入容器内部,使用
    echo $JAVA_HONE即可
    在这里插入图片描述
    在这里插入图片描述
    Maven选择自动安装
    在这里插入图片描述
    在这里插入图片描述

    构建第一个任务

    1.将自己代码上传到码云上。

    2.构建一个任务

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    填写自己gitee 码云账户

    在这里插入图片描述

    clean install 
    
    • 1

    点击立即构建
    在这里插入图片描述
    第一次构建可能耗时比较长,因为需要下载一些相关依赖jar包
    在这里插入图片描述
    在这里插入图片描述
    构建完成后会在容器内部**/target目录下有对应的jar包

    cd  /var/jenkins_home/workspace/mayikt-springboot/target
    
    • 1

    在这里插入图片描述
    但是这种仅仅是打包,还需要手动运行,因此我们需要配置构建后shell脚本再重新构建,如下:

    3.配置构建后的shell脚本,再重新构建

    在这里插入图片描述
    注意要修改的四个地方,服务名在地址栏、jar包和另外的两个路径(相同)分别对应容器内部的jar包名和路径,其余的不变。

    Jenkins启动成功之后执行shell脚本

    #!/bin/bash 
    #服务名称 
    SERVER_NAME=jekins 
    # 源jar路径,mvn打包完成之后,target目录下的jar包名称,也可选择成为war包,war包可移动到Tomcat的webapps目录下运行,这里使用jar包,用java -jar 命令执行   
    JAR_NAME=jekins-0.0.1-SNAPSHOT 
    # 源jar路径   #/usr/local/jenkins_home/workspace--->jenkins 工作目录 #demo 项目目录 #target 打包生成jar包的目录 
    JAR_PATH=/var/jenkins_home/workspace/jekins/target 
    #!/bin/bash #服务名称 SERVER_NAME=mayikt-springboot # 源jar路径,mvn打包完成之后,target目录下的jar包名称,也可选择成为war包,war包可移动到Tomcat的webapps目录下运行,这里使用jar包,用java -jar 命令执行   JAR_NAME=mayikt-springboot-1.0-SNAPSHOT # 源jar路径   #/usr/local/jenkins_home/workspace--->jenkins 工作目录 #demo 项目目录 #target 打包生成jar包的目录 JAR_PATH=/var/jenkins_home/workspace/mayikt-springboot/target # 打包完成之后,把jar包移动到运行jar包的目录--->work_daemon,work_daemon这个目录需要自己提前创建 
    JAR_WORK_PATH=/var/jenkins_home/workspace/jekins/target  
    echo "查询进程id-->$SERVER_NAME" 
    PID=`ps -ef | grep "$SERVER_NAME" | awk '{print $2}'` 
    echo "得到进程ID:$PID" 
    echo "结束进程" 
    for id in $PID 
    do  kill -9 $id    
    echo "killed $id"   
    done 
    echo "结束进程完成"  
    #复制jar包到执行目录 
    echo "复制jar包到执行目录:cp $JAR_PATH/$JAR_NAME.jar $JAR_WORK_PATH" 
    cp $JAR_PATH/$JAR_NAME.jar $JAR_WORK_PATH 
    echo "复制jar包完成" 
    cd $JAR_WORK_PATH #修改文件权限 
    chmod 755 $JAR_NAME.jar    
    BUILD_ID=dontKillMe nohup java -jar  $JAR_NAME.jar  &
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26

    4.访问

    关闭防火墙,开放服务器8087端口

    systemctl stop firewalld.service
    
    • 1

    访问:/jekins/hello接口
    http://服务器公网IP:8087/jekins/hello
    在这里插入图片描述

  • 相关阅读:
    时序分析 43 -- 时序数据转为空间数据 (二) 马尔可夫转换场
    神经网络图像识别技术,图像识别神经网络算法
    小游戏开发周期多长时间
    递归与迭代
    java计算机毕业设计学生宿舍信息管理源程序+mysql+系统+lw文档+远程调试
    【数据结构与算法分析】0基础带你学数据结构与算法分析07--二叉树
    Java基于SSM的校园一卡通系统设计与实现
    Gnome-keyring如何进行密码的CRUD
    电影主题HTM5网页设计作业成品——爱影评在线电影(10页面)使用dreamweaver制作采用DIV+CSS进行布局
    PyCharm、Python、Django安装以及环境变量配置
  • 原文地址:https://blog.csdn.net/m0_48333563/article/details/125299292
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号