基于Docker Compose部署One-API的详细指南

时间:2025-04-01 10:44:13

部署One-API的详细指南

前言

one-api是一个开源项目(/songquanpeng/one-api),旨在简化API的开发与管理过程。这个项目提供了一个全面的解决方案,特别适用于需要高效管理API接口的开发者和团队。以下是该项目的一些核心特点和功能:

  • 多模型支持:它是一个大模型接口管理和分发系统,能够支持多种主流的AI模型接口,包括但不限于OpenAI、Azure、Anthropic Claude、Google PaLM系列、智谱ChatGLM、百度文心一言、讯飞星火认知、阿里通义千问、360智脑及腾讯混元等,实现了接口的整合与统一管理。
  • 一键部署与开箱即用:通过Docker镜像形式,one-api可以实现快速部署,降低了使用门槛,使得用户能够迅速搭建起自己的API管理系统。
  • API管理功能:包括文档自动生成、接口测试、版本控制、权限管理等,这些功能有助于提升API的开发效率与维护质量,确保API服务的稳定性和安全性。
  • 高性能与轻量级:基于Go语言开发,确保了系统的高性能运行和资源的高效利用,适合微服务架构下的快速响应需求。
  • 持续更新与发展:项目活跃,不断有新特性的加入和优化,如对响应解析逻辑的重构以支持多种格式,以及对新兴模型如GPT-4的计费方案的支持等。

在现代应用开发中,容器化和微服务架构已经成为主流。Docker Compose 作为一个工具,能够帮助我们轻松管理和编排多容器应用。本指南将详细介绍如何使用Docker Compose部署One-API。

1.环境准备

获取root权限:

sudo -i

在开始之前,请确保您的系统已经安装了以下软件:

  • Docker
  • Docker Compose

您可以通过以下命令检查是否已安装:

docker --version
docker-compose --version

如果没有安装,请按照以下步骤进行安装:

安装Docker

# 更新包索引
sudo apt-get update

# 安装Docker
sudo apt-get install docker-ce docker-ce-cli 

安装Docker Compose

# 下载Docker Compose二进制文件
sudo curl -L "/docker/compose/releases/download/v2.3.3/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

# 赋予执行权限
sudo chmod +x /usr/local/bin/docker-compose

2. 创建项目目录

首先,我们需要为我们的项目创建一个目录:

mkdir one-api
cd one-api

3. 编写Docker Compose文件

在项目目录中创建一个名为 的文件:

touch 

在yml文件中添加以下内容:

version: '3.4'

services:
  one-api:
    image: "${REGISTRY:-}/justsong/one-api:latest"
    container_name: one-api
    restart: always
    command: --log-dir /app/logs
    ports:
      - "3000:3000"
    volumes:
      - ./data/oneapi:/data
      - ./logs:/app/logs
    environment:
      - SQL_DSN=oneapi:123456@tcp(db:3306)/one-api  # 修改此行,或注释掉以使用 SQLite 作为数据库
      - REDIS_CONN_STRING=redis://redis
      - SESSION_SECRET=random_string  # 修改为随机字符串
      - TZ=Asia/Shanghai
#      - NODE_TYPE=slave  # 多机部署时从节点取消注释该行
#      - SYNC_FREQUENCY=60  # 需要定期从数据库加载数据时取消注释该行
#      - FRONTEND_BASE_URL=  # 多机部署时从节点取消注释该行
    depends_on:
      - redis
      - db
    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

  redis:
    image: "${REGISTRY:-}/redis:latest"
    container_name: redis
    restart: always

  db:
    image: "${REGISTRY:-}/mysql:8.2.0"
    restart: always
    container_name: mysql
    volumes:
      - ./data/mysql:/var/lib/mysql  # 挂载目录,持久化存储
    ports:
      - '3306:3306'
    environment:
      TZ: Asia/Shanghai   # 设置时区
      MYSQL_ROOT_PASSWORD: 'OneAPI@justsong' # 设置 root 用户的密码
      MYSQL_USER: oneapi   # 创建专用用户
      MYSQL_PASSWORD: '123456'    # 设置专用用户密码
      MYSQL_DATABASE: one-api   # 自动创建数据库

或者不编写Docker Compose文件,直接拉取整个代码,代码中有:

git clone /songquanpeng/

4. 构建和启动容器

# 目前支持 MySQL 启动,数据存储在 ./data/mysql 文件夹内
docker-compose up -d

# 查看部署状态
docker-compose ps

5.访问

地址栏输入链接:

ip:3000

管理员登录:

用户名:root
初始密码:123456