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
关键配置说明:
- 时区设置:
TZ: Asia/Shanghai
确保数据库使用中国时区 - 数据库初始化:自动创建名为
bbsgo_db
的数据库和bbsgo
用户 - 数据持久化:通过volume挂载确保数据库数据不会随容器销毁而丢失
- 健康检查:系统会定期检查MySQL服务是否就绪
- 字符集配置:使用
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
关键配置说明:
- 依赖管理:
depends_on
确保MySQL服务健康后才启动应用 - 环境变量:
BBSGO_ENV=prod
设置生产环境模式 - 端口映射:
- 8082:应用主服务端口
- 3000:可能的WebSocket或前端服务端口
- 重启策略:
on-failure
确保应用异常退出后自动重启
部署步骤
-
创建项目目录并进入:
mkdir bbs-go && cd bbs-go
-
创建
docker-compose.yml
文件,将上述配置内容复制到文件中 -
启动服务:
docker-compose up -d
-
查看服务状态:
docker-compose ps
-
查看应用日志:
docker-compose logs -f bbsgo
常见问题解决
-
MySQL启动失败:
- 检查挂载目录权限
- 确保没有其他MySQL实例占用3306端口
-
应用无法连接数据库:
- 检查MySQL服务是否健康
- 确认网络连接正常
-
端口冲突:
- 修改
docker-compose.yml
中的端口映射配置
- 修改
生产环境建议
- 使用专门的数据库服务器而非容器
- 配置数据库定期备份
- 启用HTTPS访问
- 配置日志收集和监控
总结
通过Docker Compose部署bbs-go项目可以快速搭建开发或生产环境,容器化的方式简化了依赖管理和环境配置。本文详细解析了配置文件的各项参数,并提供了完整的部署流程和常见问题解决方案,帮助开发者快速上手bbs-go项目的部署工作。