Gin-Vue-Admin项目Docker Compose部署指南
2025-07-05 06:01:23作者:余洋婵Anita
概述
本文详细解析Gin-Vue-Admin项目中的Docker Compose部署配置文件,帮助开发者理解如何通过容器化方式部署这个前后端分离的管理系统。Gin-Vue-Admin是一个基于Gin框架和Vue.js构建的后台管理系统解决方案,采用Docker Compose可以简化其部署流程。
网络配置解析
配置文件中首先定义了一个名为network
的自定义网络,并设置了子网地址为177.7.0.0/16
。这种网络隔离方式有几个优势:
- 容器间通信更加安全可靠
- 可以固定分配IP地址,便于服务间调用
- 避免了端口冲突问题
每个服务都分配了固定的IPv4地址,如web服务为177.7.0.11
,server服务为177.7.0.12
等,这种设计使得服务间可以通过固定IP直接访问。
服务组件分析
1. Web前端服务
web:
build:
context: ../../web
dockerfile: ./Dockerfile
container_name: gva-web
ports:
- '8080:8080'
- 基于项目web目录下的Dockerfile构建
- 容器命名为gva-web
- 将容器8080端口映射到主机8080端口
- 依赖server服务,确保后端服务先启动
- 使用nginx-debug模式运行,便于调试
2. Server后端服务
server:
build:
context: ../../server
dockerfile: ./Dockerfile
container_name: gva-server
ports:
- '8888:8888'
- 基于项目server目录下的Dockerfile构建
- 容器命名为gva-server
- 将容器8888端口映射到主机8888端口
- 依赖mysql和redis服务,并设置了健康检查条件
- 通过links确保可以访问mysql和redis服务
3. MySQL数据库服务
mysql:
image: mysql:8.0.21
command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
ports:
- "13306:3306"
environment:
MYSQL_DATABASE: 'qmPlus'
MYSQL_USER: 'gva'
MYSQL_PASSWORD: 'Aa@6447985'
- 使用MySQL 8.0.21官方镜像
- 特别设置了UTF8MB4字符集,支持完整的Unicode字符
- 将容器3306端口映射到主机13306端口
- 初始化创建qmPlus数据库
- 创建gva用户并设置密码
- 配置了健康检查,确保数据库完全启动后server服务才会启动
- 数据持久化存储在mysql卷中
4. Redis缓存服务
redis:
image: redis:6.0.6
ports:
- '16379:6379'
- 使用Redis 6.0.6官方镜像
- 将容器6379端口映射到主机16379端口
- 配置了健康检查,确保Redis服务可用
- 数据持久化存储在redis卷中
部署注意事项
-
架构兼容性:ARM64架构(如M1芯片Mac)需修改MySQL镜像为
mysql/mysql-server:8.0.21
-
安全建议:
- 生产环境应修改默认密码
Aa@6447985
- 考虑添加MySQL root密码配置
- 限制外部访问端口
- 生产环境应修改默认密码
-
持久化存储:
- MySQL和Redis数据都配置了卷存储,确保容器重启后数据不丢失
- 实际部署时应考虑备份策略
-
启动顺序控制:
- 通过depends_on确保服务依赖关系
- 使用healthcheck确保依赖服务完全就绪
部署流程建议
- 修改必要的配置(如密码、端口等)
- 执行
docker-compose up -d
启动所有服务 - 通过
docker-compose logs -f
查看日志 - 访问
http://localhost:8080
访问前端界面
总结
这份Docker Compose配置文件为Gin-Vue-Admin项目提供了完整的容器化部署方案,包含了前端、后端、数据库和缓存服务,通过合理的网络配置和服务依赖管理,确保了系统的可靠性和可维护性。开发者可以根据实际需求调整配置参数,满足不同环境下的部署需求。