Gin-Vue-Admin项目Docker Compose部署指南
2025-07-05 06:02:04作者:羿妍玫Ivan
概述
Gin-Vue-Admin是一个基于Gin和Vue.js开发的全栈后台管理系统框架。本文将从技术角度详细解析其Docker Compose部署方案,帮助开发者理解并掌握该项目的容器化部署方式。
网络配置分析
该Docker Compose文件首先定义了一个自定义网络:
networks:
network:
ipam:
driver: default
config:
- subnet: '177.7.0.0/16'
这种配置有以下特点:
- 使用
177.7.0.0/16
作为子网,提供了大量可用IP地址 - 每个服务都分配了固定IP地址,便于服务间通信
- 隔离的网络环境增强了安全性
服务架构解析
整个系统由四个核心服务组成:
1. Web前端服务
web:
build:
context: ../../web
dockerfile: ./Dockerfile
container_name: gva-web
ports:
- '8080:8080'
特点:
- 基于项目web目录构建
- 使用Nginx作为Web服务器
- 映射主机8080端口
- 依赖后端server服务
2. 后端Server服务
server:
build:
context: ../../server
dockerfile: ./Dockerfile
container_name: gva-server
ports:
- '8888:8888'
特点:
- 基于项目server目录构建
- 暴露8888端口
- 依赖MySQL和Redis服务
- 使用健康检查确保依赖服务就绪
3. MySQL数据库服务
mysql:
image: mysql:8.0.21
command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
environment:
MYSQL_DATABASE: 'qmPlus'
MYSQL_USER: 'gva'
MYSQL_PASSWORD: 'Aa@6447985'
关键配置:
- 使用MySQL 8.0.21官方镜像
- 显式设置UTF8MB4字符集,支持完整Unicode
- 自动创建qmPlus数据库
- 配置了gva用户和密码
- 数据持久化到mysql卷
4. Redis缓存服务
redis:
image: redis:6.0.6
ports:
- '16379:6379'
volumes:
- redis:/data
特点:
- 使用Redis 6.0.6官方镜像
- 主机16379端口映射到容器6379端口
- 数据持久化到redis卷
健康检查机制
该部署方案包含了完善的服务健康检查:
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-u", "gva", "-pAa@6447985"]
interval: 10s
timeout: 5s
retries: 3
这种配置确保了:
- 服务依赖关系正确:后端服务仅在数据库就绪后启动
- 自动恢复能力:restart: always配置使容器异常退出后自动重启
- 故障检测:定期检查服务可用性
数据持久化方案
volumes:
mysql:
redis:
这种设计:
- 使用Docker卷管理数据
- 确保数据库和缓存数据在容器重启后不丢失
- 便于备份和迁移
部署实践建议
-
ARM架构适配:如使用M1等ARM芯片Mac,需将MySQL镜像替换为
mysql/mysql-server:8.0.21
-
安全配置:
- 修改默认密码
Aa@6447985
- 考虑使用环境变量文件管理敏感信息
- 修改默认密码
-
性能调优:
- 根据主机配置调整MySQL和Redis参数
- 考虑添加资源限制(CPU/Memory)
-
扩展性:
- 可轻松添加更多服务节点
- 支持水平扩展无状态服务
总结
Gin-Vue-Admin的Docker Compose部署方案体现了现代云原生应用的典型特征:服务隔离、健康检查、数据持久化和声明式配置。通过理解这个部署架构,开发者可以快速搭建开发环境,也为生产环境部署提供了良好基础。