首页
/ Gin-Vue-Admin项目Docker Compose部署指南

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'

这种配置有以下特点:

  1. 使用177.7.0.0/16作为子网,提供了大量可用IP地址
  2. 每个服务都分配了固定IP地址,便于服务间通信
  3. 隔离的网络环境增强了安全性

服务架构解析

整个系统由四个核心服务组成:

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

这种配置确保了:

  1. 服务依赖关系正确:后端服务仅在数据库就绪后启动
  2. 自动恢复能力:restart: always配置使容器异常退出后自动重启
  3. 故障检测:定期检查服务可用性

数据持久化方案

volumes:
  mysql:
  redis:

这种设计:

  1. 使用Docker卷管理数据
  2. 确保数据库和缓存数据在容器重启后不丢失
  3. 便于备份和迁移

部署实践建议

  1. ARM架构适配:如使用M1等ARM芯片Mac,需将MySQL镜像替换为mysql/mysql-server:8.0.21

  2. 安全配置

    • 修改默认密码Aa@6447985
    • 考虑使用环境变量文件管理敏感信息
  3. 性能调优

    • 根据主机配置调整MySQL和Redis参数
    • 考虑添加资源限制(CPU/Memory)
  4. 扩展性

    • 可轻松添加更多服务节点
    • 支持水平扩展无状态服务

总结

Gin-Vue-Admin的Docker Compose部署方案体现了现代云原生应用的典型特征:服务隔离、健康检查、数据持久化和声明式配置。通过理解这个部署架构,开发者可以快速搭建开发环境,也为生产环境部署提供了良好基础。