0


再见了 Jenkins, 使用 Drone + Gitee 实现自动化部署 SpringBoot 项目

再见了 Jenkins, 使用 Drone + Gitee 实现自动化部署 SpringBoot 项目

Drone 介绍

Drone 是一款基于 Docker 的轻量级开源 CI/CD 工具,旨在帮助开发人员自动化构建、测试和部署应用程序。它拥有简单易用的配置方式,并且支持多种流行的源代码管理平台和容器平台。

前期准备

  • 一台服务器或本地虚拟机
  • 服务器已安装 Docker、Drone
  • Gitee 仓库
  • SpringBoot 测试项目

配置 Gitee

登录 Gitee ,点击头像,找到

  1. 设置

,页面左侧点击

  1. 数据管理
    1. 第三方应用
    ,创建应用,具体配置如下:

截图来自 Drone 官网

配置 Drone 项目

登录服务器中部署好的

  1. Drone

web 端配置项目

  • 找到我们的 Java 项目,在 Settings 界面中开启 Trusted

  • Settings界面中点击左侧的Secrets,创建秘钥ssh_hostssh_userssh_password

配置 SpringBoot 项目

在 SpringBoot 项目根目录中创建三个文件

  1. .drone.yml

  1. Dockerfile

  1. run.sh

编写 .drone.yml 配置文件

  1. master

分支有提交代码时,就会触发 Drone 自动部署项目

  1. kind: pipeline
  2. name: default
  3. volumes:-name: cache
  4. host:path: /var/lib/cache
  5. -name: muqing-api
  6. host:path: /mydata/muqing-api
  7. steps:-name: build
  8. image: maven:3.6.3-openjdk-17pull: if-not-exists
  9. volumes:-name: cache
  10. path: /root/.m2
  11. -name: muqing-api
  12. path: /muqing-api
  13. commands:# 开始打包maven工程- mvn clean package -Dmaven.test.skip=true
  14. # 将打包后的文件复制到宿主机映射目录- cp run.sh /muqing-api
  15. - cp muqing-admin/target/*.jar /muqing-api
  16. - cp muqing-admin/Dockerfile /muqing-api
  17. # 2.使用ssh访问主机制作镜像并运行-name: ssh commands
  18. pull: if-not-exists
  19. image: appleboy/drone-ssh
  20. settings:host:# 从drone仓库配置中秘密空间读取服务器IPfrom_secret: ssh_host
  21. username:# 从drone仓库配置中秘密空间读取用户from_secret: ssh_user
  22. password:# 从drone仓库配置中秘密空间读取密码from_secret: ssh_password
  23. port:22script:- cd /mydata/muqing-api
  24. - chmod +x run.sh
  25. - ./run.sh
  26. # drone执行触发器trigger:branch:- master

编写 Dockerfile 文件

  1. FROM openjdk:17
  2. ADD muqing-admin-0.0.1.jar /home/app.jar
  3. EXPOSE 8080
  4. CMD ["java", "-jar", "/home/app.jar"]

编写 run.sh 脚本

  1. #!/bin/bash# 应用组名group_name='java'# 应用名称app_name='muqing-api'echo'---------- 停止旧容器 ----------'docker stop ${app_name}echo'---------- 删除旧容器 ----------'dockerrm${app_name}echo'---------- 删除旧镜像 ----------'docker rmi ${group_name}/${app_name}echo'---------- 打包新镜像 ----------'docker build -t${group_name}/${app_name}.echo'---------- 删除无用镜像 ----------'docker image prune -fecho'---------- 创建新容器 ----------'docker run -p8080:8080 --name${app_name}\-eTZ="Asia/Shanghai"\-d${group_name}/${app_name}

部署结果

对应

  1. .drone.yml

中配置的流水线步骤

从 Git 仓库中拉取项目代码

Maven 打包 Java 项目

Docker 部署

总结

Drone 是一款功能强大、易于使用的 CI/CD 工具,提供了丰富的插件,可以扩展其功能。Drone 采用轻量级的基于 Docker 的架构,易于部署和管理,重点是免费。Drone 和 Jenkins 都是优秀的 CI/CD 工具,选择哪一款取决于您的项目需求和团队规模。如果您追求简单易用,Drone 是一个不错的选择。


欢迎大家关注我的微信公众号【源梦倩影】~

在这里插入图片描述

标签: jenkins gitee 自动化

本文转载自: https://blog.csdn.net/weixin_50680035/article/details/138059142
版权归原作者 源梦倩影 所有, 如有侵权,请联系我们删除。

“再见了 Jenkins, 使用 Drone + Gitee 实现自动化部署 SpringBoot 项目”的评论:

还没有评论