当前位置: 首页 > news >正文

从 Coding (Jenkinsfile) 到 Docker:全流程自动化部署 Spring Boot 实战指南(简化篇)

前言

本文记录使用 Coding (以 Jenkinsfile 为核心) 和 Docker 部署 Springboot 项目的过程,分享设置细节和一些注意问题。


1. 配置服务器环境

在实施此过程前,确保服务器已配置好 Docker、MySQL 和 Redis,可参考下列链接进行操作:

  1. Docker 安装图文细节
  2. MySQL 安装图文细节
  3. Redis 安装图文细节

2. 创建一个 Springboot 项目

示例项目:Ruoyi-Vue-Pro 开源框架

此框架需要 JDK、MySQL 和 Redis,参考官方文档完成配置。

环境配置:
  1. 以 JDK 21、MySQL 8.0、Redis 7.4 为例
    • 拉取代码,切换分支为master-jdk17 (如需 JDK 8,则使用默认分支 master),完成 Maven 依赖下载。
    • 修改配置文件:
      • application.yaml 中的 spring.profiles.active 设置为 dev,确保配置文件同步。
      • 根据服务器上实际的 MySQL 和 Redis 地址,修改 application-dev.yaml 配置。
    • 测试配置:
      运行项目,可访问 http://127.0.0.1:48080/ 确认是否正常启动,解决各种启动问题。

3. 将代码提交到 Coding

  1. 创建 Coding 本地仓库,实现将 Git 远程地址修改后上传。
  2. 确保已提交到指定分支。

4. 编写 Jenkinsfile 脚本

核心配置
  • 选择构建计划:Java + Spring + Docker,按需配置流程和派配详情如下:
pipeline {agent anystages {stage('检出') {steps {checkout([$class: 'GitSCM',branches: [[name: GIT_BUILD_REF]],userRemoteConfigs: [[url: GIT_REPO_URL,credentialsId: CREDENTIALS_ID]]])}}stage('编译') {agent {docker {reuseNode trueregistryUrl 'https://coding-public-docker.pkg.coding.net'image 'public/docker/openjdk:21-2024.03'args '-v /var/run/docker.sock:/var/run/docker.sock -v /usr/bin/docker:/usr/bin/docker --entrypoint='}}steps {sh 'mvn clean install -DskipTests -Dmaven.test.skip=true'}}stage('构建镜像并推送到 CODING Docker 制品库') {steps {script {docker.withRegistry("${CCI_CURRENT_WEB_PROTOCOL}://${CODING_DOCKER_REG_HOST}","${CODING_ARTIFACTS_CREDENTIALS_ID}") {echo "Current directory: ${env.WORKSPACE}"dir('yudao-server') {def dockerImage = docker.build("${CODING_DOCKER_IMAGE_NAME}:${DOCKER_IMAGE_VERSION}", "-f Dockerfile ${DOCKER_BUILD_CONTEXT}")dockerImage.push()}}}}}stage('部署到远程服务') {steps {script {def remoteConfig = [:]remoteConfig.name = "my-remote-ltby"remoteConfig.host = "${REMOTE_HOST}"remoteConfig.port = 22remoteConfig.allowAnyHosts = truewithCredentials([usernamePassword(credentialsId: "${REMOTE_CRED}",passwordVariable: 'password',usernameVariable: 'userName'),]) {remoteConfig.user = userNameremoteConfig.password = passwordsshCommand(remote: remoteConfig,command: "docker rm -f spring-boot | true",sudo: true,)DOCKER_IMAGE_URL = sh(script: "echo ${CODING_DOCKER_REG_HOST}/${CODING_DOCKER_IMAGE_NAME}:${DOCKER_IMAGE_VERSION}",returnStdout: true)sshCommand(remote: remoteConfig,command: "docker run -d -p 48080:48080 --name spring-boot ${DOCKER_IMAGE_URL}",sudo: true,)echo "部署成功,请访问 http://${REMOTE_HOST}:48080 查看效果"}}}}}}environment {CODING_DOCKER_REG_HOST = "${CCI_CURRENT_TEAM}-docker.pkg.${CCI_CURRENT_DOMAIN}"CODING_DOCKER_IMAGE_NAME = "${PROJECT_NAME.toLowerCase()}/${DOCKER_REPO_NAME}/${DOCKER_IMAGE_NAME}"}
}

5. 开始构建和测试

根据需求设置解决问题,确保部署正常。


6. 构建成功与访问

  1. 等待时间:一般构建需要 5-10 分钟,请耐心等待。
  2. 访问地址:访问部署的服务,地址格式为 http://<服务器IP>:48080,例如:
    • 访问示例:http://xxx.xxx.xxx.xxx:48080 (将 xxx 替换为实际 IP)
  3. 成功示例截图

  • 服务正常运行时的页面应如图所示。

完整细节篇:Coding + Docker + SpringBoot集成自动化部署


结束语

通过 Coding (Jenkinsfile) 集成 Docker 自动化部署 Springboot 项目,可以大幅提高开发与部署效率,尤其是对小型团队而言,集中管理代码和部署是一种高效方案。

——如果此文章对您有帮助,👏点赞支持一下!——

http://www.lryc.cn/news/512689.html

相关文章:

  • Linux官文转载-- Linux 内核代码风格
  • Qt监控系统放大招/历经十几年迭代完善/多屏幕辅屏预览/多层级设备树/网络登录和回放
  • 【贪心算法】贪心算法七
  • LangChain教程 - 表达式语言 (LCEL) -构建智能链
  • 使用Locust对Redis进行负载测试
  • HIVE数据仓库分层
  • 数据结构与算法之动态规划: LeetCode 2407. 最长递增子序列 II (Ts版)
  • 电子电气架构 --- 什么是自动驾驶技术中的域控制单元(DCU)?
  • html5css3
  • FPGA多路红外相机视频拼接输出,提供2套工程源码和技术支持
  • python实战(十二)——如何进行新词发现?
  • 动手做计算机网络仿真实验入门学习
  • 完整的 FFmpeg 命令使用教程
  • Leetcode 3405. Count the Number of Arrays with K Matching Adjacent Elements
  • Springboot(五十六)SpringBoot3集成SkyWalking
  • 有没有免费提取音频的软件?音频编辑软件介绍!
  • Linux 中查看内存使用情况全攻略
  • 【SQL Server】教材数据库(3)
  • 使用 ECharts 与 Vue 构建数据可视化组件
  • Yocto 项目 - 共享状态缓存 (Shared State Cache) 机制
  • Unity3D仿星露谷物语开发9之创建农场Scene
  • STM32-笔记20-测量按键按下时间
  • 2024年12月30日Github流行趋势
  • SAP PP bom历史导出 ALV 及XLSX 带ECN号
  • 使用WebRTC进行视频通信
  • npm ERR! ECONNRESET 解决方法
  • 【连续学习之SS-IL算法】2021年CPVR会议论文Ss-il:Separated softmax for incremental learning
  • Go+chromedp实现Web UI自动化测试
  • 【MySQL 高级特性与性能优化】
  • Spring Boot教程之三十九: 使用 Maven 将 Spring Boot 应用程序 Docker 化