news 2026/3/24 10:28:27

Docker与JeecgBoot低代码平台:从零到一键部署的完整指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Docker与JeecgBoot低代码平台:从零到一键部署的完整指南

1. 为什么选择Docker部署JeecgBoot?

如果你正在寻找一个快速搭建企业级应用的方法,JeecgBoot绝对是个不错的选择。作为国内知名的低代码开发平台,它能让开发效率提升70%以上。但传统的部署方式往往需要折腾各种环境依赖,这时候Docker的优势就体现出来了。

我去年接手一个紧急项目时,就用Docker在半小时内完成了从零部署到上线。相比传统方式节省了至少一天的环境配置时间,关键是整个过程可重复、可移植。想象一下,当你把整个系统打包成容器,在任何服务器上都能一键启动,这种体验有多爽。

Docker化部署主要带来三个核心优势:

  • 环境一致性:再也不用说"在我机器上是好的"这种话
  • 快速部署:从源码到服务只需几条命令
  • 资源隔离:每个服务独立运行,互不干扰

2. 环境准备:打好基础很重要

2.1 安装Docker全家桶

工欲善其事,必先利其器。首先确保你的系统已经安装Docker和docker-compose。以Ubuntu为例:

# 卸载旧版本 sudo apt-get remove docker docker-engine docker.io containerd runc # 安装依赖 sudo apt-get update sudo apt-get install \ ca-certificates \ curl \ gnupg \ lsb-release # 添加Docker官方GPG密钥 sudo mkdir -p /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg # 设置稳定版仓库 echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null # 安装Docker引擎 sudo apt-get update sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin # 验证安装 sudo docker run hello-world

如果看到"Hello from Docker!"的提示,说明安装成功。建议将当前用户加入docker组,避免每次都要sudo:

sudo usermod -aG docker $USER newgrp docker # 立即生效

2.2 准备编译环境

JeecgBoot需要Java和Node.js环境进行前后端编译。虽然Docker化后这些工具不再需要安装在宿主机,但编译阶段还是需要的:

# 安装JDK 17(JeecgBoot推荐版本) sudo apt install openjdk-17-jdk # 安装Maven wget https://dlcdn.apache.org/maven/maven-3/3.9.9/binaries/apache-maven-3.9.9-bin.tar.gz tar -xzf apache-maven-3.9.9-bin.tar.gz sudo mv apache-maven-3.9.9 /opt/maven # 配置环境变量 echo 'export MAVEN_HOME=/opt/maven export PATH=$PATH:$MAVEN_HOME/bin' | sudo tee /etc/profile.d/maven.sh source /etc/profile.d/maven.sh # 安装Node.js 18+ curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash - sudo apt-get install -y nodejs # 验证安装 java -version mvn -v node -v

3. 获取和配置JeecgBoot源码

3.1 克隆项目仓库

官方推荐从Gitee克隆代码,速度更快:

git clone https://gitee.com/jeecg/jeecg-boot.git cd jeecg-boot

如果遇到网络问题,可以尝试加上深度克隆参数:

git clone --depth=1 https://gitee.com/jeecg/jeecg-boot.git

3.2 修改后端配置

进入项目后,首要任务是配置数据库连接。找到开发环境配置文件:

vim jeecg-module-system/jeecg-system-start/src/main/resources/application-dev.yml

关键配置项修改示例:

spring: datasource: url: jdbc:mysql://jeecg-boot-mysql:3306/jeecg-boot?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai username: root password: 123456 redis: host: jeecg-boot-redis port: 6379

注意这里使用了服务名而非IP,这是为了后续Docker容器间通信做准备。

3.3 修改前端配置

前端项目需要配置API基础地址:

vim jeecgboot-vue3/.env.production

修改为:

VITE_GLOB_DOMAIN_URL=http://localhost:8080/jeecg-boot VITE_GLOB_API_URL=/jeecg-boot

4. 编译打包:从源码到可运行程序

4.1 后端Java项目编译

使用Maven进行编译打包:

mvn clean install -DskipTests

第一次编译可能会比较久,因为要下载所有依赖。我建议喝杯咖啡等待,大型项目可能需要10-15分钟。如果遇到依赖下载失败,可以尝试:

mvn clean install -DskipTests -U

编译成功后,会在各模块target目录生成jar包,主要需要的是:

jeecg-module-system/jeecg-system-start/target/jeecg-system-start-3.5.0.jar

4.2 前端Vue项目编译

前端项目使用pnpm管理依赖,先安装依赖:

cd jeecgboot-vue3 npm install -g pnpm pnpm install

编译生产环境代码:

pnpm run build

编译完成后,所有静态资源会生成在dist目录。

5. Docker化部署实战

5.1 编写Docker Compose文件

在项目根目录创建docker-compose.yml:

version: '3.8' services: jeecg-boot-mysql: image: mysql:8.0 container_name: jeecg-boot-mysql environment: MYSQL_ROOT_PASSWORD: 123456 MYSQL_DATABASE: jeecg-boot TZ: Asia/Shanghai volumes: - mysql_data:/var/lib/mysql command: --default-authentication-plugin=mysql_native_password --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci ports: - "3306:3306" networks: - jeecg-net jeecg-boot-redis: image: redis:6 container_name: jeecg-boot-redis ports: - "6379:6379" networks: - jeecg-net jeecg-boot-backend: build: context: . dockerfile: Dockerfile.backend container_name: jeecg-boot-backend depends_on: - jeecg-boot-mysql - jeecg-boot-redis ports: - "8080:8080" networks: - jeecg-net jeecg-boot-frontend: build: context: . dockerfile: Dockerfile.frontend container_name: jeecg-boot-frontend ports: - "80:80" networks: - jeecg-net volumes: mysql_data: networks: jeecg-net: driver: bridge

5.2 编写Dockerfile

创建后端Dockerfile(Dockerfile.backend):

FROM openjdk:17-jdk WORKDIR /app COPY jeecg-module-system/jeecg-system-start/target/jeecg-system-start-*.jar app.jar EXPOSE 8080 ENTRYPOINT ["java","-jar","app.jar"]

创建前端Dockerfile(Dockerfile.frontend):

FROM nginx:alpine WORKDIR /usr/share/nginx/html COPY jeecgboot-vue3/dist . COPY jeecgboot-vue3/nginx.conf /etc/nginx/conf.d/default.conf EXPOSE 80

5.3 启动所有服务

一键启动所有容器:

docker-compose up -d

可以通过以下命令查看日志:

docker-compose logs -f

6. 验证与使用

6.1 检查服务状态

确保所有容器正常运行:

docker ps

应该看到4个容器:MySQL、Redis、后端服务和前端服务。

6.2 访问系统

打开浏览器访问:

  • 前端地址:http://localhost
  • 后端Swagger文档:http://localhost:8080/jeecg-boot/doc.html

默认管理员账号:

  • 用户名:admin
  • 密码:123456

6.3 常见问题解决

数据库连接失败: 检查MySQL容器日志:

docker logs jeecg-boot-mysql

确保数据库初始化完成后再启动后端服务。

前端访问空白页: 可能是Nginx配置问题,检查:

docker exec -it jeecg-boot-frontend nginx -t

内存不足: 如果服务器资源有限,可以在docker-compose.yml中添加资源限制:

jeecg-boot-backend: deploy: resources: limits: cpus: '1' memory: 1G

7. 生产环境优化建议

7.1 使用阿里云镜像加速

修改docker-compose.yml,使用国内镜像:

jeecg-boot-mysql: image: registry.cn-hangzhou.aliyuncs.com/library/mysql:8.0

7.2 配置数据持久化

确保重要数据不会因容器重启而丢失:

volumes: mysql_data: driver: local redis_data: driver: local

7.3 启用HTTPS

使用Let's Encrypt免费证书:

docker run -it --rm --name certbot \ -v "/etc/letsencrypt:/etc/letsencrypt" \ -v "/var/lib/letsencrypt:/var/lib/letsencrypt" \ certbot/certbot certonly --standalone -d yourdomain.com

7.4 监控与日志

配置ELK收集日志:

elk: image: sebp/elk ports: - "5601:5601" - "9200:9200" - "5044:5044" volumes: - elk-data:/var/lib/elasticsearch

8. 进阶:微服务模式部署

JeecgBoot也支持微服务架构,只需调整docker-compose.yml:

nacos: image: nacos/nacos-server environment: - MODE=standalone ports: - "8848:8848"

然后修改应用配置连接到Nacos即可。这种架构更适合大型分布式系统,但维护成本也会相应增加。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/17 9:32:56

如何用iPhone轻松掌控安卓手机?Scrcpy-iOS让跨设备操控变简单

如何用iPhone轻松掌控安卓手机?Scrcpy-iOS让跨设备操控变简单 【免费下载链接】scrcpy-ios Scrcpy-iOS.app is a remote control tool for Android Phones based on [https://github.com/Genymobile/scrcpy]. 项目地址: https://gitcode.com/gh_mirrors/sc/scrcpy…

作者头像 李华
网站建设 2026/3/21 0:03:30

掌握GRETNA:从零基础到精通的图论分析全流程实操指南

掌握GRETNA:从零基础到精通的图论分析全流程实操指南 【免费下载链接】GRETNA A Graph-theoretical Network Analysis Toolkit in MATLAB 项目地址: https://gitcode.com/gh_mirrors/gr/GRETNA GRETNA(Graph-theoretical Network Analysis Toolki…

作者头像 李华
网站建设 2026/3/22 20:17:49

2025+云数据库管理效率工具:CloudBeaver全功能实战指南

2025云数据库管理效率工具:CloudBeaver全功能实战指南 【免费下载链接】cloudbeaver Cloud Database Manager 项目地址: https://gitcode.com/gh_mirrors/cl/cloudbeaver CloudBeaver作为一款开源数据库工具,凭借Web端管理特性实现跨平台兼容&…

作者头像 李华
网站建设 2026/3/17 15:26:47

macOS运行Windows软件完全指南:告别虚拟机的跨平台解决方案

macOS运行Windows软件完全指南:告别虚拟机的跨平台解决方案 【免费下载链接】Whisky A modern Wine wrapper for macOS built with SwiftUI 项目地址: https://gitcode.com/gh_mirrors/wh/Whisky 在数字化工作环境中,操作系统间的壁垒常常成为效率…

作者头像 李华
网站建设 2026/3/24 3:14:51

使用 Chin Bull Bot 提升开发效率:从架构设计到实战优化

背景与痛点:重复劳动拖慢迭代节奏 过去两年,我们组维护着 8 个微服务,每次发版前都要手动跑一遍「单元测试→静态扫描→打镜像→写变更记录」。流程固定,却没人愿意接手,原因很简单: 步骤多,命…

作者头像 李华
网站建设 2026/3/16 2:32:23

Neper多晶体建模实战:从入门到有限元分析的完整指南

Neper多晶体建模实战:从入门到有限元分析的完整指南 【免费下载链接】neper Polycrystal generation and meshing 项目地址: https://gitcode.com/gh_mirrors/nep/neper Neper是一款专注于多晶体生成、网格划分与材料模拟的开源软件工具,能够帮助…

作者头像 李华