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

部署One-API的详细指南

前言

one-api是一个开源项目(https://github.com/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 containerd.io

安装Docker Compose

# 下载Docker Compose二进制文件
sudo curl -L "https://github.com/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文件

在项目目录中创建一个名为 docker-compose.yml 的文件:

touch docker-compose.yml

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

version: '3.4'

services:
  one-api:
    image: "${REGISTRY:-docker.io}/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=https://openai.justsong.cn  # 多机部署时从节点取消注释该行
    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:-docker.io}/redis:latest"
    container_name: redis
    restart: always

  db:
    image: "${REGISTRY:-docker.io}/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文件,直接拉取整个代码,代码中有docker-compose.yml:

git clone https://github.com/songquanpeng/one-api.git

4. 构建和启动容器

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

# 查看部署状态
docker-compose ps

5.访问

地址栏输入链接:

ip:3000

管理员登录:

用户名:root
初始密码:123456
  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
部署xxl-job可以使用docker-compose进行快速部署,以下是一个简单的docker-compose.yml配置文件示例: ```yaml version: '3' services: xxl-job-admin: image: xxl-job-admin:2.1.2 container_name: xxl-job-admin ports: - "8080:8080" environment: - PARAMS="--spring.datasource.url=jdbc:mysql://mysql:3306/xxl_job?Unicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=Asia/Shanghai --spring.datasource.username=root --spring.datasource.password=password --spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver --spring.redis.host=redis --spring.redis.port=6379 --spring.redis.timeout=1000 --spring.redis.database=0" depends_on: - mysql - redis mysql: image: mysql:5.7 container_name: mysql environment: - MYSQL_ROOT_PASSWORD=password - MYSQL_DATABASE=xxl_job volumes: - ./mysql-data:/var/lib/mysql redis: image: redis:5.0.7 container_name: redis ports: - "6379:6379" volumes: - ./redis-data:/data ``` 这个配置文件中包含了3个服务,分别是xxl-job-admin、mysql和redis。 - xxl-job-admin:xxl-job的管理后台,使用xxl-job-admin:2.1.2镜像进行部署,将容器的8080端口映射到宿主机的8080端口。配置了环境变量PARAMS,用于指定xxl-job-admin的配置参数,包括mysql和redis的连接信息。 - mysql:使用mysql:5.7镜像进行部署,容器内的数据目录挂载到宿主机的./mysql-data目录,设置root用户的密码和xxl-job需要使用的数据库名称。 - redis:使用redis:5.0.7镜像进行部署,将容器的6379端口映射到宿主机的6379端口,容器内的数据目录挂载到宿主机的./redis-data目录。 在配置文件所在的目录下,使用以下命令启动服务: ``` docker-compose up -d ``` 这个命令会启动所有服务,并将它们放到后台运行。可以使用以下命令查看服务运行状态: ``` docker-compose ps ``` 可以访问http://localhost:8080/xxl-job-admin/登录xxl-job的管理后台。默认的用户名和密码都是admin。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Zarathusa

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值