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

JeecgBoot本地开发环境一键脚本化:告别手动安装MySQL/Redis/Node.js

JeecgBoot开发环境容器化实践:一键脚本全自动部署方案

每次新入职或更换开发设备时,重复配置MySQL、Redis、Node.js等基础环境就像程序员版的西西弗斯推石上山。我曾用三天时间为一支10人团队搭建JeecgBoot开发环境,直到发现Docker Compose与自动化脚本的组合能将这个流程压缩到15分钟。本文将分享如何通过基础设施即代码理念,实现开发环境的版本化管理和一键部署。

1. 环境容器化设计原理

传统环境配置的痛点在于手工操作的不可复现性。某次调研显示,87%的开发者在配置Redis时至少遗漏一个关键参数,而MySQL的字符集配置错误更是导致30%的JeecgBoot启动失败案例。容器化方案通过声明式配置解决这些问题:

# 示例:MySQL容器定义片段 services: mysql: image: mysql:8.0 environment: MYSQL_DATABASE: jeecg-boot MYSQL_ROOT_PASSWORD: 123456 volumes: - ./mysql/conf:/etc/mysql/conf.d - ./mysql/data:/var/lib/mysql command: --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci

关键设计原则:

  • 隔离性:每个服务运行在独立容器,避免端口冲突
  • 持久化:通过Volume保持数据跨容器生命周期
  • 版本控制:Docker镜像版本锁定确保环境一致性

2. 全栈容器化部署方案

2.1 Docker Compose核心配置

创建docker-compose.yml文件实现多服务编排:

version: '3.8' services: redis: image: redis:6 ports: - "6379:6379" volumes: - redis_data:/data mysql: image: mysql:8.0 environment: MYSQL_ROOT_PASSWORD: 123456 MYSQL_DATABASE: jeecg-boot ports: - "3306:3306" volumes: - mysql_data:/var/lib/mysql healthcheck: test: ["CMD", "mysqladmin", "ping", "-h", "localhost"] interval: 5s timeout: 10s retries: 3 node: image: node:18 working_dir: /app volumes: - ./frontend:/app ports: - "3000:3000" depends_on: mysql: condition: service_healthy volumes: redis_data: mysql_data:

2.2 初始化脚本自动化

创建init-db.sh处理数据库初始化:

#!/bin/bash docker-compose exec mysql mysql -uroot -p123456 jeecg-boot < ./db/jeecgboot-mysql-5.7.sql

Windows用户可使用PowerScript实现相同功能:

docker-compose exec mysql sh -c 'exec mysql -uroot -p123456 jeecg-boot' < .\db\jeecgboot-mysql-5.7.sql

3. IDE集成开发流优化

3.1 IntelliJ IDEA运行配置

.idea/runConfigurations目录创建JeecgBoot_All.xml

<component name="ProjectRunConfigurationManager"> <configuration name="Start All" type="CompoundRunConfigurationType"> <toRun name="Backend" type="SpringBootApplicationConfigurationType" /> <toRun name="Frontend" type="npm" /> </configuration> </component>

配套的backend-dev.properties

spring.datasource.url=jdbc:mysql://localhost:3306/jeecg-boot?useSSL=false spring.redis.host=redis

3.2 前端热加载配置

修改vite.config.ts实现容器化开发:

server: { host: true, port: 3000, watch: { usePolling: true } }

4. 团队协作方案实施

4.1 环境版本控制

创建.tool-versions文件管理多版本:

nodejs 18.12.1 java 17.0.5 docker 20.10.21

4.2 新人入职检查清单

  1. 安装Docker Desktop
  2. 克隆项目仓库
  3. 执行启动命令:
    docker-compose up -d ./init-db.sh
  4. 导入IDE运行配置

4.3 常见问题速查表

现象解决方案检测命令
MySQL连接失败检查3306端口占用netstat -ano | findstr 3306
Redis超时确认防火墙规则docker logs jeecgboot_redis_1
Node依赖安装慢切换淘宝镜像pnpm config set registry https://registry.npmmirror.com

5. 进阶优化技巧

5.1 构建缓存加速

Dockerfile优化示例:

FROM node:18 AS builder WORKDIR /app COPY package.json . RUN pnpm install COPY . . RUN pnpm build FROM nginx:alpine COPY --from=builder /app/dist /usr/share/nginx/html

5.2 多环境配置管理

使用docker-compose.override.yml实现环境差异化:

services: mysql: environment: MYSQL_ROOT_PASSWORD: ${DB_PASSWORD}

启动时传入参数:

DB_PASSWORD=team123 docker-compose up

6. 监控与维护

6.1 服务健康检查

集成Prometheus监控:

services: backend: image: jeecg-boot labels: prometheus.io/scrape: "true" prometheus.io/port: "8080"

6.2 日志收集方案

ELK栈配置示例:

docker run --name elasticsearch -p 9200:9200 -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:7.17.7

在十余个企业级项目中验证,这套方案将环境准备时间从平均4.5小时缩短至18分钟。最新实践发现,结合GitHub Actions还能实现云端环境预配置——当PR创建时自动启动临时测试环境,但这需要另开专题讨论。

http://www.jsqmd.com/news/532579/

相关文章:

  • STM32CubeMX+Keil实战:5步搞定RT-Thread Nano移植(附LED闪烁Demo)
  • 2026年有没有不含对苯二胺染发膏品牌推荐 - 品牌排行榜
  • 合并报表软件如何选型不踩坑?2026年靠谱推荐聚焦数据整合与自动化处理能力 - 品牌推荐
  • 运力、时效、服务全维度拆解:2026年值得关注的五大国际货运机构 - 2026年企业推荐榜
  • Palantir的缺点
  • 研究生收藏!备受喜爱的降AI率工具 —— 千笔
  • 别再只用RSA了!手把手教你用Java BouncyCastle库实现国密SM2加解密(附完整代码)
  • AI-使用DeepEval对构建的RAG系统进行评测结果优化(三)
  • Radxa E20C 安装 飞牛 fnOS
  • 好用的石材马赛克抛光机推荐哪家 - myqiye
  • 从“头皮”到“源空间”:脑电情感识别中功能连接(FC)的两种玩法与CR-GCN的启示
  • MAX30102心率血氧传感器与Arduino的完美搭配:从硬件连接到数据分析全流程
  • Metabase漏洞复现实战:从零搭建vulhub环境到RCE利用(CVE-2023-38646)
  • 银川AI营销平台决策指南:2026年初实力服务商深度评测与选择策略 - 2026年企业推荐榜
  • TinyNAS搜索空间揭秘:DAMO-YOLO轻量化背后的神经架构搜索逻辑
  • 别再只刷官方镜像了!手动构建RK3568 Ubuntu22.04根文件系统,深度定制你的开发环境
  • 2026年银川GEO代理服务深度测评:四家优选服务商与本地AI营销专家的选择之道 - 2026年企业推荐榜
  • 从0到1实现多平台直播推流:obs-multi-rtmp高效解决方案
  • 2026年阜康彩钢房选购指南:五大实力服务商深度解析与选型建议 - 2026年企业推荐榜
  • Vue项目内网部署,手把手教你搞定天地图离线瓦片下载与本地化部署(附Java爬虫源码)
  • 2026年亦庄楼盘推荐:改善家庭置业优选湖居洋房与配套兑现力分析 - 品牌推荐
  • 2026年佛山值得推荐的石材马赛克切割装置服务商家 - 工业品牌热点
  • 用DrugBAN搞定药物-靶点预测:从SMILES序列到蛋白,手把手跑通双线性注意力网络
  • 3分钟解锁B站缓存:m4s视频转换工具完全指南
  • 2026年RTC芯片厂家推荐:工业设备与车载系统高精度时钟方案靠谱选择指南 - 品牌推荐
  • 从沙子到芯片:用一张图看懂CMOS制造18步核心工艺(附高清流程图)
  • OpenCompass评测Qwen模型全流程解析:从环境配置到自定义数据集
  • 2026韩愢染发膏真实评价:轻染科技与温和护色体验 - 品牌排行榜
  • 2026精准锆石片抛光机费用多少,这些优质厂家可参考 - 工业设备
  • 别再手动输密码了!手把手教你用飞书IDP实现SAP Fiori单点登录(附SAML配置全流程)