九块记账(Docker-Compose)数据库分离部署教程
参考资料
九块记账(Docker-Compose)数据库分离部署教程
九块记账(Docker-Compose)数据库分离部署教程
本教程将指导您如何使用Docker-Compose将九块记账应用的数据库与主应用分离部署。
前提条件
已安装Docker和Docker-Compose
服务器上开放了必要的端口(如3306用于MySQL)
基本的Linux命令行知识
部署步骤
1. 准备目录结构
mkdir -p jiukuai-accounting/{app,db,config} cd jiukuai-accounting
2. 创建数据库服务(docker-compose.db.yml)
在jiukuai-accounting
目录下创建docker-compose.db.yml
文件:
version: '3.8' services: mysql: image: mysql:8.0 container_name: jiukuai_mysql environment: MYSQL_ROOT_PASSWORD: your_strong_root_password MYSQL_DATABASE: jiukuai_accounting MYSQL_USER: jiukuai_user MYSQL_PASSWORD: your_strong_db_password volumes: - ./db/data:/var/lib/mysql - ./db/init.sql:/docker-entrypoint-initdb.d/init.sql ports: - "3306:3306" restart: unless-stopped networks: - jiukuai_network networks: jiukuai_network: driver: bridge
3. 创建应用服务(docker-compose.app.yml)
在同一个目录下创建docker-compose.app.yml
文件:
version: '3.8' services: jiukuai-app: image: jiukuai/accounting:latest # 替换为实际的九块记账镜像 container_name: jiukuai_app depends_on: - mysql environment: DB_HOST: mysql DB_PORT: 3306 DB_NAME: jiukuai_accounting DB_USER: jiukuai_user DB_PASSWORD: your_strong_db_password volumes: - ./app/data:/app/data - ./config:/app/config ports: - "8080:8080" # 根据实际应用端口调整 restart: unless-stopped networks: - jiukuai_network networks: jiukuai_network: external: true
4. 初始化数据库(可选)
如果需要初始化数据库,可以在db/init.sql
文件中添加SQL语句:
-- 示例:创建必要的表或初始数据 -- 根据九块记账的实际数据库结构进行调整
5. 启动服务
首先启动数据库服务:
docker-compose -f docker-compose.db.yml up -d
等待数据库完全启动后,再启动应用服务:
docker-compose -f docker-compose.app.yml up -d
6. 验证部署
检查容器状态:
docker ps
应该能看到jiukuai_mysql
和jiukuai_app
两个容器正在运行。
配置说明
网络配置:两个服务使用相同的自定义网络
jiukuai_network
,确保它们可以互相通信数据持久化:
数据库数据存储在
./db/data
目录应用数据存储在
./app/data
目录配置文件存储在
./config
目录安全性:
替换所有示例密码为强密码
考虑限制数据库端口(3306)的访问,仅允许应用服务器IP
维护命令
停止服务:
docker-compose -f docker-compose.app.yml down docker-compose -f docker-compose.db.yml down
查看日志:
docker logs jiukuai_app docker logs jiukuai_mysql
备份数据库:
docker exec jiukuai_mysql mysqldump -u jiukuai_user -p your_strong_db_password jiukuai_accounting > backup.sql
注意事项
生产环境中应考虑使用更安全的数据库配置
定期备份数据库
根据实际应用需求调整资源限制(CPU、内存等)
如果应用需要额外的服务(如Redis),需要相应扩展docker-compose文件
希望本教程能帮助您成功部署九块记账应用!