在hsw.csidc.cn这个计算平台上安装FastGPT遇到问题, k8s节点无法安装Docker #479

Closed
opened 2025-01-16 19:18:40 +08:00 by 11969113265cs · 6 comments

按照你们给的说明文档里的步骤安装是错误的, 因为计算平台上的机器都是k8s Pod, 不是物理机, 无法安装Docker!

# 数据库的默认账号和密码仅首次运行时设置有效
# 如果修改了账号密码,记得改数据库和项目连接参数,别只改一处~
# 该配置文件只是给快速启动,测试使用。正式使用,记得务必修改账号密码,以及调整合适的知识库参数,共享内存等。
# 如果无法访问 dockerhub 和 git,可以用阿里云(阿里云没有 arm 包)
services:
  # PostgreSQL 数据库
  pg:
    # image: pgvector/pgvector:0.7.0-pg15 # docker hub
    image: registry.cn-hangzhou.aliyuncs.com/fastgpt/pgvector:v0.7.0 # 阿里云
    container_name: pg
    restart: always
    ports: # 生产环境建议不要暴露
      - 5432:5432
    networks:
      - fastgpt
    environment:
      # 这里的配置只有首次运行生效。修改后,重启镜像是不会生效的。需要把持久化数据删除再重启,才有效果
      - POSTGRES_USER=username
      - POSTGRES_PASSWORD=password
      - POSTGRES_DB=postgres
    volumes:
      - ./pg/data:/var/lib/postgresql/data

  # MongoDB 数据库
  mongo:
    # image: mongo:5.0.18 # dockerhub
    image: registry.cn-hangzhou.aliyuncs.com/fastgpt/mongo:5.0.18 # 阿里云
    # image: mongo:4.4.29 # cpu 不支持 AVX 时候使用
    container_name: mongo
    restart: always
    ports:
      - 27017:27017
    networks:
      - fastgpt
    command: mongod --keyFile /data/mongodb.key --replSet rs0
    environment:
      - MONGO_INITDB_ROOT_USERNAME=myusername
      - MONGO_INITDB_ROOT_PASSWORD=mypassword
    volumes:
      - ./mongo/data:/data/db
    entrypoint:
      - bash
      - -c
      - |
        openssl rand -base64 128 > /data/mongodb.key
        chmod 400 /data/mongodb.key
        chown 999:999 /data/mongodb.key
        echo 'const isInited = rs.status().ok === 1
        if(!isInited){
          rs.initiate({
            _id: "rs0",
            members: [
              { _id: 0, host: "mongo:27017" }
            ]
          })
        }' > /data/initReplicaSet.js
        # 启动 MongoDB 服务
        exec docker-entrypoint.sh "$$@" &
        # 等待 MongoDB 服务启动
        until mongo -u myusername -p mypassword --authenticationDatabase admin --eval "print('waited for connection')" > /dev/null 2>&1; do
          echo "Waiting for MongoDB to start..."
          sleep 2
        done
        # 执行初始化副本集的脚本
        mongo -u myusername -p mypassword --authenticationDatabase admin /data/initReplicaSet.js
        # 等待 docker-entrypoint.sh 脚本执行的 MongoDB 服务进程
        wait $$!        

  # FastGPT 的沙盒服务
  sandbox:
    container_name: sandbox
    # image: ghcr.io/labring/fastgpt-sandbox:latest # git
    image: registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt-sandbox:latest # 阿里云
    networks:
      - fastgpt
    restart: always

  # FastGPT 主服务
  fastgpt:
    container_name: fastgpt
    # image: ghcr.io/labring/fastgpt:v4.8.8-fix2 # git
    image: registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt:v4.8.8-fix2 # 阿里云
    ports:
      - 3000:3000
    networks:
      - fastgpt
    depends_on:
      - mongo
      - pg
      - sandbox
    restart: always
    environment:
      # root 密码,用户名为: root。如果需要修改 root 密码,直接修改这个环境变量,并重启即可。
      - DEFAULT_ROOT_PSW=1234
      # AI 模型的 API 地址哦。务必加 /v1。这里默认填写了 OneApi 的访问地址。
      - OPENAI_BASE_URL=http://oneapi:3000/v1
      # AI 模型的 API Key。(这里默认填写了 OneAPI 的快速默认 key,测试通后,务必及时修改)
      - CHAT_API_KEY=sk-fastgpt
      # 数据库最大连接数
      - DB_MAX_LINK=30
      # 登录凭证密钥
      - TOKEN_KEY=any
      # root 的密钥,常用于升级时候的初始化请求
      - ROOT_KEY=root_key
      # 文件阅读加密
      - FILE_TOKEN_KEY=filetoken
      # MongoDB 连接参数. 用户名 myusername, 密码 mypassword。
      - MONGODB_URI=mongodb://myusername:mypassword@mongo:27017/fastgpt?authSource=admin
      # PostgreSQL 连接参数
      - PG_URL=postgresql://username:password@pg:5432/postgres
      # 沙盒地址
      - SANDBOX_URL=http://sandbox:3000
      # 日志等级: debug, info, warn, error
      - LOG_LEVEL=info
      - STORE_LOG_LEVEL=warn
    volumes:
      - ./config.json:/app/data/config.json

  # MySQL 数据库(用于 OneAPI)
  mysql:
    image: registry.cn-hangzhou.aliyuncs.com/fastgpt/mysql:8.0.36 # 阿里云
    # image: mysql:8.0.36
    container_name: mysql
    restart: always
    ports:
      - 3306:3306
    networks:
      - fastgpt
    command: --default-authentication-plugin=mysql_native_password
    environment:
      # 默认 root 密码,仅首次运行有效
      MYSQL_ROOT_PASSWORD: oneapimmysql
      MYSQL_DATABASE: oneapi
    volumes:
      - ./mysql:/var/lib/mysql

  # OneAPI 服务
  oneapi:
    container_name: oneapi
    # image: ghcr.io/songquanpeng/one-api:v0.6.7
    image: registry.cn-hangzhou.aliyuncs.com/fastgpt/one-api:v0.6.6 # 阿里云
    ports:
      - 3001:3000
    depends_on:
      - mysql
    networks:
      - fastgpt
    restart: always
    environment:
      # MySQL 连接参数
      - SQL_DSN=root:oneapimmysql@tcp(mysql:3306)/oneapi
      # 登录凭证加密密钥
      - SESSION_SECRET=oneapikey
      # 内存缓存
      - MEMORY_CACHE_ENABLED=true
      # 启动聚合更新,减少数据交互频率
      - BATCH_UPDATE_ENABLED=true
      # 聚合更新时长
      - BATCH_UPDATE_INTERVAL=10
      # 初始化的 root 密钥(建议部署完后更改,否则容易泄露)
      - INITIAL_ROOT_TOKEN=fastgpt
    volumes:
      - ./oneapi:/data

# 定义网络
networks:
  fastgpt:

如何在你们的算力上安装FastGPT?

按照你们给的说明文档里的步骤安装是错误的, 因为计算平台上的机器都是k8s Pod, 不是物理机, 无法安装Docker! ```YAML # 数据库的默认账号和密码仅首次运行时设置有效 # 如果修改了账号密码,记得改数据库和项目连接参数,别只改一处~ # 该配置文件只是给快速启动,测试使用。正式使用,记得务必修改账号密码,以及调整合适的知识库参数,共享内存等。 # 如果无法访问 dockerhub 和 git,可以用阿里云(阿里云没有 arm 包) services: # PostgreSQL 数据库 pg: # image: pgvector/pgvector:0.7.0-pg15 # docker hub image: registry.cn-hangzhou.aliyuncs.com/fastgpt/pgvector:v0.7.0 # 阿里云 container_name: pg restart: always ports: # 生产环境建议不要暴露 - 5432:5432 networks: - fastgpt environment: # 这里的配置只有首次运行生效。修改后,重启镜像是不会生效的。需要把持久化数据删除再重启,才有效果 - POSTGRES_USER=username - POSTGRES_PASSWORD=password - POSTGRES_DB=postgres volumes: - ./pg/data:/var/lib/postgresql/data # MongoDB 数据库 mongo: # image: mongo:5.0.18 # dockerhub image: registry.cn-hangzhou.aliyuncs.com/fastgpt/mongo:5.0.18 # 阿里云 # image: mongo:4.4.29 # cpu 不支持 AVX 时候使用 container_name: mongo restart: always ports: - 27017:27017 networks: - fastgpt command: mongod --keyFile /data/mongodb.key --replSet rs0 environment: - MONGO_INITDB_ROOT_USERNAME=myusername - MONGO_INITDB_ROOT_PASSWORD=mypassword volumes: - ./mongo/data:/data/db entrypoint: - bash - -c - | openssl rand -base64 128 > /data/mongodb.key chmod 400 /data/mongodb.key chown 999:999 /data/mongodb.key echo 'const isInited = rs.status().ok === 1 if(!isInited){ rs.initiate({ _id: "rs0", members: [ { _id: 0, host: "mongo:27017" } ] }) }' > /data/initReplicaSet.js # 启动 MongoDB 服务 exec docker-entrypoint.sh "$$@" & # 等待 MongoDB 服务启动 until mongo -u myusername -p mypassword --authenticationDatabase admin --eval "print('waited for connection')" > /dev/null 2>&1; do echo "Waiting for MongoDB to start..." sleep 2 done # 执行初始化副本集的脚本 mongo -u myusername -p mypassword --authenticationDatabase admin /data/initReplicaSet.js # 等待 docker-entrypoint.sh 脚本执行的 MongoDB 服务进程 wait $$! # FastGPT 的沙盒服务 sandbox: container_name: sandbox # image: ghcr.io/labring/fastgpt-sandbox:latest # git image: registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt-sandbox:latest # 阿里云 networks: - fastgpt restart: always # FastGPT 主服务 fastgpt: container_name: fastgpt # image: ghcr.io/labring/fastgpt:v4.8.8-fix2 # git image: registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt:v4.8.8-fix2 # 阿里云 ports: - 3000:3000 networks: - fastgpt depends_on: - mongo - pg - sandbox restart: always environment: # root 密码,用户名为: root。如果需要修改 root 密码,直接修改这个环境变量,并重启即可。 - DEFAULT_ROOT_PSW=1234 # AI 模型的 API 地址哦。务必加 /v1。这里默认填写了 OneApi 的访问地址。 - OPENAI_BASE_URL=http://oneapi:3000/v1 # AI 模型的 API Key。(这里默认填写了 OneAPI 的快速默认 key,测试通后,务必及时修改) - CHAT_API_KEY=sk-fastgpt # 数据库最大连接数 - DB_MAX_LINK=30 # 登录凭证密钥 - TOKEN_KEY=any # root 的密钥,常用于升级时候的初始化请求 - ROOT_KEY=root_key # 文件阅读加密 - FILE_TOKEN_KEY=filetoken # MongoDB 连接参数. 用户名 myusername, 密码 mypassword。 - MONGODB_URI=mongodb://myusername:mypassword@mongo:27017/fastgpt?authSource=admin # PostgreSQL 连接参数 - PG_URL=postgresql://username:password@pg:5432/postgres # 沙盒地址 - SANDBOX_URL=http://sandbox:3000 # 日志等级: debug, info, warn, error - LOG_LEVEL=info - STORE_LOG_LEVEL=warn volumes: - ./config.json:/app/data/config.json # MySQL 数据库(用于 OneAPI) mysql: image: registry.cn-hangzhou.aliyuncs.com/fastgpt/mysql:8.0.36 # 阿里云 # image: mysql:8.0.36 container_name: mysql restart: always ports: - 3306:3306 networks: - fastgpt command: --default-authentication-plugin=mysql_native_password environment: # 默认 root 密码,仅首次运行有效 MYSQL_ROOT_PASSWORD: oneapimmysql MYSQL_DATABASE: oneapi volumes: - ./mysql:/var/lib/mysql # OneAPI 服务 oneapi: container_name: oneapi # image: ghcr.io/songquanpeng/one-api:v0.6.7 image: registry.cn-hangzhou.aliyuncs.com/fastgpt/one-api:v0.6.6 # 阿里云 ports: - 3001:3000 depends_on: - mysql networks: - fastgpt restart: always environment: # MySQL 连接参数 - SQL_DSN=root:oneapimmysql@tcp(mysql:3306)/oneapi # 登录凭证加密密钥 - SESSION_SECRET=oneapikey # 内存缓存 - MEMORY_CACHE_ENABLED=true # 启动聚合更新,减少数据交互频率 - BATCH_UPDATE_ENABLED=true # 聚合更新时长 - BATCH_UPDATE_INTERVAL=10 # 初始化的 root 密钥(建议部署完后更改,否则容易泄露) - INITIAL_ROOT_TOKEN=fastgpt volumes: - ./oneapi:/data # 定义网络 networks: fastgpt: ``` 如何在你们的算力上安装FastGPT?
Author

而且你们的镜像里并没有Docker服务, 我安装了后Docker启动不了

而且你们的镜像里并没有Docker服务, 我安装了后Docker启动不了

fastgpt需要在自己物理机上安装,而非训练平台上安装。

fastgpt需要在自己物理机上安装,而非训练平台上安装。
Author

那我的电脑是Macbook Air, 能跑得起来吗?

那我的电脑是Macbook Air, 能跑得起来吗?
Author

必须在AutoDL上跑吗? 搞了那么多算力为什么不在hsw.csidc.cn这个算力平台上支持, 直接做成k8s镜像让我选不行吗?

必须在AutoDL上跑吗? 搞了那么多算力为什么不在hsw.csidc.cn这个算力平台上支持, 直接做成k8s镜像让我选不行吗?

那我的电脑是Macbook Air, 能跑得起来吗?

fastgpt 不需要GPU资源,可以尝试在物理机部署。fastgpt只是接入大模型接口的应用。大模型实际服务才需要GPU或者加速卡资源的服务器。

> 那我的电脑是Macbook Air, 能跑得起来吗? fastgpt 不需要GPU资源,可以尝试在物理机部署。fastgpt只是接入大模型接口的应用。大模型实际服务才需要GPU或者加速卡资源的服务器。

必须在AutoDL上跑吗? 搞了那么多算力为什么不在hsw.csidc.cn这个算力平台上支持, 直接做成k8s镜像让我选不行吗?

本节课是基于英伟达GPU来讲解的,所以使用了英伟达的服务器。不是必须在AutoDL上跑,只要是英伟达的机器就可以。

> 必须在AutoDL上跑吗? 搞了那么多算力为什么不在hsw.csidc.cn这个算力平台上支持, 直接做成k8s镜像让我选不行吗? 本节课是基于英伟达GPU来讲解的,所以使用了英伟达的服务器。不是必须在AutoDL上跑,只要是英伟达的机器就可以。
Sign in to join this conversation.
No Milestone
No project
No Assignees
2 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: HswOAuth/llm_course#479
No description provided.