TypeHero项目Docker Compose部署指南
2025-07-07 06:35:43作者:廉皓灿Ida
项目概述
TypeHero是一个基于MySQL和Redis的应用程序,本指南将详细介绍如何使用Docker Compose快速部署TypeHero的开发环境。Docker Compose是一个用于定义和运行多容器Docker应用程序的工具,通过YAML文件配置服务,可以轻松实现一键部署。
环境准备
在开始之前,请确保您的系统已安装以下组件:
- Docker引擎(版本17.12.0+)
- Docker Compose(版本1.21.0+)
核心服务配置解析
MySQL数据库服务
TypeHero使用MySQL作为主要数据库存储,配置如下:
db:
image: bitnami/mysql:latest
container_name: typehero-db
restart: always
environment:
MYSQL_ROOT_USER: dev
MYSQL_ROOT_PASSWORD: dev
MYSQL_DATABASE: typehero
healthcheck:
test: ['CMD', 'mysqladmin', 'ping', '-h', 'localhost']
timeout: 20s
retries: 10
volumes:
- typehero-data:/bitnami/mysql/data
ports:
- 3306:3306
关键配置说明:
- 使用bitnami提供的MySQL官方镜像,保证稳定性和安全性
- 预设了root用户(dev)和密码(dev),以及默认数据库(typehero)
- 健康检查机制确保数据库完全启动后应用才连接
- 数据卷挂载保证数据持久化,避免容器重启后数据丢失
- 暴露标准MySQL端口3306,便于本地开发工具连接
Redis缓存服务
TypeHero使用Redis作为缓存服务,配置如下:
redis:
image: 'bitnami/redis:latest'
container_name: typehero-redis
restart: always
environment:
- ALLOW_EMPTY_PASSWORD=yes
ports:
- 6379:6379
关键配置说明:
- 同样使用bitnami提供的Redis官方镜像
- 允许空密码访问,简化开发环境配置
- 暴露标准Redis端口6379
- 自动重启策略确保服务高可用
数据持久化配置
volumes:
typehero-data:
driver: local
该配置创建了一个名为typehero-data的本地卷,用于持久化MySQL数据文件。这意味着即使容器被删除或重建,数据库内容也不会丢失。
部署与使用指南
- 将上述配置保存为
docker-compose.yml
文件 - 在文件所在目录执行以下命令启动服务:
docker-compose up -d
- 查看服务状态:
docker-compose ps
- 停止服务:
docker-compose down
开发环境连接信息
-
MySQL连接:
- 主机:localhost
- 端口:3306
- 用户名:dev
- 密码:dev
- 数据库:typehero
-
Redis连接:
- 主机:localhost
- 端口:6379
- 无密码
常见问题解决
- 端口冲突:如果3306或6379端口已被占用,可以修改ports配置为"自定义端口:容器端口"格式
- 启动超时:首次启动可能需要较长时间下载镜像,请耐心等待
- 数据重置:如需完全重置数据库,可删除docker卷:
docker volume rm typehero-data
最佳实践建议
- 生产环境应修改默认凭证,使用更复杂的密码
- 考虑添加数据库备份策略
- 可根据实际需求调整MySQL和Redis的资源配置
- 开发完成后,建议使用
docker-compose down -v
彻底清理环境
通过本指南,您应该能够顺利搭建TypeHero的开发环境。这种容器化的部署方式不仅简化了环境配置,也保证了开发、测试和生产环境的一致性。