• 使用 Docker + Jenkins + Gitlab + Maven 自动化部署 Spring Boot


    Jenkins 是 Devops 神器,本文介绍如何安装和使用 Docker + Jenkins + Gitlab + Maven 自动化部署 Spring Boot 项目。

    一 准备环境

    Centos 7.6
    JDK 1.8
    Jenkins 2.238 
    Maven 3.5.4
    Docker 19 
    Maven默认已经安装完成;
    Jdk默认已经安装完成;

    Docker 安装教程

    Docker 安装常用软件教程

    更多详情参考我另外一篇博客

    二 Jenkins 插件安装和全局环境配置

    2.1 插件安装

    有很多插件都是选择的默认的安装的,所以现在需要我们安装的插件不多,Git plugin 和 Maven Integration plugin、publish over SSH、Deploy to container、Subversion

    插件安装:系统管理 > 插件管理 > 可选插件,勾选需要安装的插件,点击直接安装或者下载重启后安装。

    2.2 全局安全配置

    管理Jenkins > 配置全局安全性 > 可选插件,勾选需要安装的插件,点击直接安装或者下载重启后安装。

    1)没有权限配置,只要登录就可以操作

    2)配置权限,登录账号经过赋权才能有操作权限

    2.3 全局工具配置

    1)Maven 配置

    2)JDK 配置

    3)查看 maven 和 jdk 安装目录命令

    1. echo $MAVEN_HOME
    2. echo $JAVA_HOME

    三 目标发布服务器配置

    使用用户名+密码方式登录目标发布服务器

    管理Jenkins > 系统配置

    点击高级添加root账号密码

    四 使用 Dockerfile 构建项目

    5.1 jar上传到服务器目录下

     5.2 使用 Dockerfile 构建镜像:vim Dockerfile

    1. # 该镜像需要依赖的基础镜像
    2. FROM java:8
    3. # 指定维护者的名字
    4. LABEL maintainer=lc
    5. # 定义匿名数据卷
    6. VOLUME /tmp
    7. # COPY 复制资源到容器中
    8. COPY cloud-token-upms-0.0.1-SNAPSHOT.jar /app/ccloud-token-upms-0.0.1-SNAPSHOT.jar
    9. COPY application.properties application.properties
    10. # 指定docker容器启动时运行jar包和配置文件
    11. ENTRYPOINT ["java","-Xms256m", "-Xmx256m","-jar","/app/cloud-token-upms-0.0.1-SNAPSHOT.jar","--spring.config.location=/application.properties","-Dfile.encoding=UTF-8"]

    5.3 编写容器自动化脚本

    1. #!/bin/bash
    2. # 定义应用组名
    3. group_name='cloud'
    4. # 定义应用名称
    5. app_name='upms'
    6. # 定义应用版本
    7. app_version='0.0.1-SNAPSHOT'
    8. # 定义应用环境
    9. profile_active='qa'
    10. echo '----copy jar----'
    11. # 停止容器
    12. docker stop ${app_name}
    13. echo '----stop container----'
    14. # 删除容器
    15. docker rm ${app_name}
    16. echo '----rm container----'
    17. # 删除镜像
    18. docker rmi ${group_name}/${app_name}:${app_version}
    19. echo '----rm image----'
    20. # 打包编译docker镜像
    21. docker build -t ${group_name}/${app_name}:${app_version} .
    22. echo '----build image----'
    23. # 启动容器
    24. docker run -p 8844:8844 --restart=always --name ${app_name} -v /home/project/jar/logs:/logs -d ${group_name}/${app_name}:${app_version}
    25. echo '----start container----'

    五 构建项目

    首页点击新建:输入项目名称

    下方选择构建一个 Maven 项目,点击确定。

    勾选丢弃旧的构建,选择是否备份被替换的旧包。我这里选择备份最近的10个

    源码管理,选择 Git,配置 Git 相关信息,点击 add 可以输入 Git 的账户和密码

     点击添加,可以添加 Git 账号和密码

    在 Build 中输入打包前的 mvn 命令,如:

    clean install -Dmaven.test.skip=true -Ptest

    意思是:排除测试的包内容,使用后缀为 test 的配置文件。

    点击高级可以配置maven

    Post Steps 选择 Run only if build succeeds

    点击Add post-build step,选择 Send files or execute commands over SSH

    Name 选择上面配置的 Push SSH

    Source files配置:target/xxx-0.0.1-SNAPSHOT.jar 项目jar包名

    Remove prefix:target/

    Remote directory:代码应用服务器的目录地址

    Exec command:程序启动脚本

    脚本内容:

    1. DATE=$(date +%Y%m%d)
    2. scp /opt/jar/upms/cloud-token-upms-0.0.1-SNAPSHOT.jar /opt/jar/upms/backup/cloud-token-upms-0.0.1-SNAPSHOT.jar-$DATE
    3. scp /opt/jar/upms/tempjar/cloud-token-upms-0.0.1-SNAPSHOT.jar /opt/jar/upms/cloud-token-upms-0.0.1-SNAPSHOT.jar
    4. cd /opt/jar/upms
    5. sh run.sh

    这段脚本的意思,生成当前日期备份旧jar,把最新的jar放在启动目录中。在进入启动目录执行 run.sh

    注意xxxx.jar地址,因为用命令启动需要去找jar包,目前jenkins直接打在默认目录了,没有进行自定义设置,故如此配置。

    六 立即构建且验证

    1)点击立即构建

    2)控制台输出,查看启动日志

    3)登录发布目标服务器,通过命令形式查看进程是否起来,命令如下

    4)查看镜像

     5)查看容器

     至此 使用Docker + Jenkins + Gitlab + Maven 自动化部署 Spring Boot 借此结束。

  • 相关阅读:
    unocss在vue-cli中的使用
    记录一次关于css font-weight引发的风波
    Vue2.0 —— 由设计模式切入,实现响应式原理
    vue组件实现搜索下拉框功能
    JavaScriput中数组去重方法之indexof()
    ubuntu22.04开机自启动Eureka服务
    .NET周报 【4月第4期 2023-04-23】
    Oracle Net Configuration Assistant 配置步骤
    vtk之【vtkPolyData、vtkCell、vtkPoints】
    高防CDN如何预防攻击?
  • 原文地址:https://blog.csdn.net/lovelichao12/article/details/125468901