首页
/ Calcium-Ion/new-api项目Docker Compose部署指南

Calcium-Ion/new-api项目Docker Compose部署指南

2025-07-07 01:43:41作者:秋阔奎Evelyn

项目概述

Calcium-Ion/new-api是一个基于容器化技术的API服务项目,采用微服务架构设计,包含API主服务、Redis缓存服务和MySQL数据库服务。本指南将详细解析项目的Docker Compose配置文件,帮助开发者理解如何部署和配置这套服务。

核心服务架构

项目采用典型的三层架构设计:

  1. API服务层:基于calciumion/new-api镜像的主服务
  2. 缓存层:使用Redis提供高速缓存支持
  3. 数据持久层:MySQL数据库存储核心业务数据

配置文件详解

主API服务配置

new-api:
  image: calciumion/new-api:latest
  container_name: new-api
  restart: always
  command: --log-dir /app/logs
  ports:
    - "3000:3000"
  volumes:
    - ./data:/data
    - ./logs:/app/logs
  • 镜像选择:使用项目官方构建的最新版镜像
  • 自动重启:配置为always确保服务异常退出后自动恢复
  • 日志管理:通过volume挂载将日志持久化到宿主机
  • 端口映射:3000端口对外提供服务

环境变量配置

environment:
  - SQL_DSN=root:123456@tcp(mysql:3306)/new-api
  - REDIS_CONN_STRING=redis://redis
  - TZ=Asia/Shanghai
  - ERROR_LOG_ENABLED=true

关键配置说明:

  • 数据库连接:使用MySQL服务,用户名root,密码123456
  • Redis连接:使用内部DNS名称redis连接Redis服务
  • 时区设置:Asia/Shanghai确保日志时间正确
  • 错误日志:启用错误日志记录功能

健康检查机制

healthcheck:
  test: ["CMD-SHELL", "wget -q -O - http://localhost:3000/api/status | grep -o '\"success\":\\s*true' | awk -F: '{print $$2}'"]
  interval: 30s
  timeout: 10s
  retries: 3

健康检查通过调用API的/status端点,验证返回JSON中包含"success": true,确保服务正常运行。

依赖服务配置

Redis服务

redis:
  image: redis:latest
  container_name: redis
  restart: always

使用官方Redis最新镜像,配置自动重启策略。

MySQL服务

mysql:
  image: mysql:8.2
  container_name: mysql
  restart: always
  environment:
    MYSQL_ROOT_PASSWORD: 123456
    MYSQL_DATABASE: new-api
  volumes:
    - mysql_data:/var/lib/mysql

关键配置:

  • 使用MySQL 8.2版本
  • 设置root密码为123456(与API服务配置一致)
  • 自动创建new-api数据库
  • 数据卷持久化存储数据库文件

部署建议

  1. 安全加固

    • 修改默认数据库密码
    • 考虑启用MySQL的SSL连接
    • 在生产环境设置SESSION_SECRET环境变量
  2. 性能调优

    • 根据负载调整STREAMING_TIMEOUT参数
    • 配置适当的数据库连接池大小
  3. 高可用方案

    • 注释掉的NODE_TYPE和SYNC_FREQUENCY参数可用于多节点部署
    • 考虑添加Redis持久化配置
  4. 监控方案

    • 结合ERROR_LOG_ENABLED配置日志监控
    • 通过健康检查端点实现服务监控

常见问题解决

  1. 连接问题

    • 确保MySQL和Redis服务先于API服务启动
    • 验证depends_on配置
  2. 性能问题

    • 调整STREAMING_TIMEOUT解决空补全问题
    • 检查日志卷是否影响IO性能
  3. 时区问题

    • 确保所有服务使用一致的TZ设置

通过本指南,开发者可以全面理解Calcium-Ion/new-api项目的Docker Compose配置,并根据实际需求进行调整和优化。