参考资料

  1. 九块记账(Docker-Compose)数据库分离部署教程
  2. ERP办公系统是一款企业资源计划软件
  3. OA协同办公系统是一款基于Web的企业办公自动化软件
  4. Docker部署dzzoffice+onlyoffice
  5. 九块记账(Docker-Compose)完整部署教程
  6. 九块记账(Docker-Compose)数据库独立部署教程
  7. Bitrix24是一款集CRM、任务管理、通讯、文档协作等功能于一体的企业级协同办公平台
  8. DzzOffice是一款开源的网盘协作系统

九块记账(Docker-Compose)数据库分离部署教程

九块记账(Docker-Compose)数据库分离部署教程

本教程将指导您如何使用Docker-Compose将九块记账应用的数据库与主应用分离部署。

前提条件

  1. 已安装Docker和Docker-Compose

  2. 服务器上开放了必要的端口(如3306用于MySQL)

  3. 基本的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_mysqljiukuai_app两个容器正在运行。

配置说明

  1. 网络配置:两个服务使用相同的自定义网络jiukuai_network,确保它们可以互相通信

  2. 数据持久化

    • 数据库数据存储在./db/data目录

    • 应用数据存储在./app/data目录

    • 配置文件存储在./config目录

  3. 安全性

    • 替换所有示例密码为强密码

    • 考虑限制数据库端口(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

注意事项

  1. 生产环境中应考虑使用更安全的数据库配置

  2. 定期备份数据库

  3. 根据实际应用需求调整资源限制(CPU、内存等)

  4. 如果应用需要额外的服务(如Redis),需要相应扩展docker-compose文件

希望本教程能帮助您成功部署九块记账应用!