one-api采用docker-compose离线部署方法:

1.先在能上网的主机按照github上说明装好one-api

2.将3个镜像打包

docker save -o one-api.tar justsong/one-api

docker save -o pgvector.tar pgvector/pgvector

docker save -o mysql.tar mysql

3.将镜像复制到离线主机,运行

docker load -i one-api.tar

docker load -i pgvector.tar

docker load -i mysql.tar

4.将 docker-compose.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:
      - '3307:3306'
    environment:
      TZ: Asia/Shanghai   # 设置时区
      MYSQL_ROOT_PASSWORD: 'OneAPI@justsong' # 设置 root 用户的密码
      MYSQL_USER: oneapi   # 创建专用用户
      MYSQL_PASSWORD: '123456'    # 设置专用用户密码
      MYSQL_DATABASE: one-api   # 自动创建数据库
                                                 

5.运行

docker-compose up -d

等待10秒,如果容器一直启动不了反复重启,查看当前目录的logs目录下的日志,其中如果包含报错信息:

failed to get gpt-3.5-turbo token encoder: get "https://openaipublic.blob.core.windows.net/encodings/cl100k_base.tiktoken":dial tcp: lookup open..............

说明找不到cl100k_base.tiktoken文件(因为没联网)

6.解决办法

(1)先到网上下载https://openaipublic.blob.core.windows.net/encodings/cl100k_base.tiktoken,复制到离线主机某个目录:path/to/file

(2)将cl100k_base.tiktoken改名为9b5ad71b2ce5302211f9c61530b329a4922fc6a4

(3)在docker-compose.yml文件中one-api下的volumes中增加如下:

- path/to/file:/app/tiktokens

在environment下增加:

- TIKTOKEN_CACHE_DIR=/app/tiktokens

7.重新运行

docker-compose down

docker-compose up -d

应该可以了

GitHub 加速计划 / compose / compose
33.28 K
5.15 K
下载
compose - Docker Compose是一个用于定义和运行多容器Docker应用程序的工具,通过Compose文件格式简化应用部署过程。
最近提交(Master分支:3 个月前 )
5e3a0953 full diff: https://github.com/docker/cli/compare/v27.4.0-rc.1...8d1bacae3e49ed1d096eede8eef4ae851d7f2eae Signed-off-by: Sebastiaan van Stijn <github@gone.nl> 8 天前
a2a3eb72 - full diff: https://github.com/docker/cli/compare/cb3048fbebb1...v27.4.0-rc.1 Signed-off-by: Sebastiaan van Stijn <github@gone.nl> 8 天前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐