首页
/ Gin-Vue-Admin项目开发环境Docker Compose部署指南

Gin-Vue-Admin项目开发环境Docker Compose部署指南

2025-07-05 06:01:18作者:舒璇辛Bertina

前言

在现代Web应用开发中,使用Docker容器化技术可以极大简化开发环境的搭建过程。本文将以Gin-Vue-Admin项目为例,详细解析其开发环境下的Docker Compose配置文件,帮助开发者快速理解并搭建完整的开发环境。

环境概述

Gin-Vue-Admin是一个基于Gin和Vue.js开发的全栈后台管理系统框架。其开发环境需要同时运行前端(Vue)、后端(Gin)、数据库(MySQL)和缓存(Redis)四个主要组件。通过Docker Compose,我们可以将这些服务编排在一起,实现一键启动。

网络配置

networks:
  network:
    ipam:
      driver: default
      config:
        - subnet: '177.7.0.0/16'

配置文件首先定义了一个自定义网络,子网地址为177.7.0.0/16。这种配置有以下优势:

  1. 容器间可以通过容器名直接通信
  2. 固定IP地址便于调试和排查问题
  3. 与宿主机网络隔离,避免端口冲突

服务编排

1. 前端服务(web)

web:
  image: node:20
  container_name: gva-web
  ports:
    - '8080:8080'
  command: bash -c "yarn install && yarn serve"
  volumes:
    - ../../web:/web

前端服务使用Node.js 20镜像,特点包括:

  • 开发模式下通过yarn serve启动开发服务器
  • 通过volume挂载实现代码热更新
  • 默认映射8080端口,可通过浏览器直接访问

优化建议:国内开发者可添加镜像源加速依赖安装:

command: bash -c "yarn config set registry https://registry.npmmirror.com --global && yarn install && yarn serve"

2. 后端服务(server)

server:
  image: golang:1.22
  ports:
    - '8888:8888'
  command: bash -c "go env -w GOPROXY=https://goproxy.cn,direct && go mod tidy && go run main.go"

后端服务特点:

  • 使用Go 1.22镜像
  • 配置了国内GOPROXY代理加速依赖下载
  • 自动执行go mod tidy确保依赖一致性
  • 直接运行main.go启动开发服务器

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'

关键配置说明:

  • 显式设置UTF8MB4字符集,支持完整Unicode字符
  • 自动创建名为qmPlus的数据库
  • 创建gva用户并设置密码
  • 健康检查确保服务可用性

注意:ARM架构设备(如M1 Mac)需使用mysql/mysql-server:8.0.21镜像

4. Redis缓存

redis:
  image: redis:6.0.6
  ports:
    - '16379:6379'

Redis服务配置相对简单,主要注意:

  • 使用Redis 6.0.6版本
  • 数据持久化到volume
  • 健康检查确保服务可用

服务依赖关系

depends_on:
  mysql:
    condition: service_healthy
  redis:
    condition: service_healthy

后端服务明确依赖MySQL和Redis,且只有在它们健康状态检查通过后才会启动,这确保了服务启动顺序的正确性。

数据持久化

volumes:
  mysql:
  redis:

通过Docker volume实现数据持久化,即使容器重启数据也不会丢失。

最佳实践建议

  1. 开发环境隔离:建议为每个开发者创建独立的Docker网络,避免端口冲突
  2. 配置管理:敏感信息如数据库密码应通过环境变量文件管理
  3. 镜像版本固定:生产环境应固定所有镜像版本号
  4. 资源限制:可添加CPU和内存限制避免资源耗尽

总结

通过这份Docker Compose文件,Gin-Vue-Admin项目实现了:

  1. 前后端分离开发环境一键启动
  2. 依赖服务(MySQL/Redis)自动化配置
  3. 开发友好的热更新支持
  4. 稳定的服务健康检查机制

开发者只需执行docker-compose -f docker-compose-dev.yaml up即可获得完整的开发环境,极大提高了开发效率。