首页
/ bbs-go项目Docker Compose部署指南

bbs-go项目Docker Compose部署指南

2025-07-10 01:40:12作者:郁楠烈Hubert

概述

本文将详细介绍如何使用Docker Compose部署bbs-go项目。bbs-go是一个基于Go语言开发的论坛系统,通过Docker容器化部署可以大大简化环境配置和部署流程。

环境准备

在开始部署前,请确保已安装以下软件:

  • Docker 19.03+
  • Docker Compose 1.25+

配置文件解析

MySQL服务配置

mysql:
  container_name: bbs-go-mysql
  image: 'mysql:8.0'
  environment:
    TZ: Asia/Shanghai
    MYSQL_DATABASE: bbsgo_db
    MYSQL_USER: bbsgo
    MYSQL_PASSWORD: 123456
    MYSQL_ROOT_PASSWORD: 123456
  volumes:
    - .docker-compose/mysql/data:/var/lib/mysql
  restart: always
  healthcheck:
    test: '/usr/bin/mysql --user=bbsgo --password=123456 bbsgo_db --execute "SHOW TABLES;"'
    interval: 3s
    timeout: 300s
    retries: 100
  command: --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci

关键配置说明:

  1. 时区设置TZ: Asia/Shanghai确保数据库使用中国时区
  2. 数据库初始化:自动创建名为bbsgo_db的数据库和bbsgo用户
  3. 数据持久化:通过volume挂载确保数据库数据不会随容器销毁而丢失
  4. 健康检查:系统会定期检查MySQL服务是否就绪
  5. 字符集配置:使用utf8mb4字符集支持完整的Unicode字符(包括emoji)

安全建议:生产环境中应修改默认密码123456为更复杂的密码

bbs-go应用服务配置

bbsgo:
  container_name: bbs-go
  image: mlogclub/bbs-go:latest
  depends_on:
    mysql:
      condition: service_healthy
  environment:
    BBSGO_ENV: prod
  ports:
    - 8082:8082
    - 3000:3000
  restart: on-failure

关键配置说明:

  1. 依赖管理depends_on确保MySQL服务健康后才启动应用
  2. 环境变量BBSGO_ENV=prod设置生产环境模式
  3. 端口映射
    • 8082:应用主服务端口
    • 3000:可能的WebSocket或前端服务端口
  4. 重启策略on-failure确保应用异常退出后自动重启

部署步骤

  1. 创建项目目录并进入:

    mkdir bbs-go && cd bbs-go
    
  2. 创建docker-compose.yml文件,将上述配置内容复制到文件中

  3. 启动服务:

    docker-compose up -d
    
  4. 查看服务状态:

    docker-compose ps
    
  5. 查看应用日志:

    docker-compose logs -f bbsgo
    

常见问题解决

  1. MySQL启动失败

    • 检查挂载目录权限
    • 确保没有其他MySQL实例占用3306端口
  2. 应用无法连接数据库

    • 检查MySQL服务是否健康
    • 确认网络连接正常
  3. 端口冲突

    • 修改docker-compose.yml中的端口映射配置

生产环境建议

  1. 使用专门的数据库服务器而非容器
  2. 配置数据库定期备份
  3. 启用HTTPS访问
  4. 配置日志收集和监控

总结

通过Docker Compose部署bbs-go项目可以快速搭建开发或生产环境,容器化的方式简化了依赖管理和环境配置。本文详细解析了配置文件的各项参数,并提供了完整的部署流程和常见问题解决方案,帮助开发者快速上手bbs-go项目的部署工作。