bisheng系列(一)- 本地部署(Docker)

news2025/5/20 19:15:36

目录

一、导读

二、说明

1、镜像说明

2、本节内容

三、docker部署

1、克隆代码

2、运行镜像

3、可能的错误信息

四、页面测试

1、注册用户

2、登陆成功

3、添加模型


一、导读


环境:Ubuntu 24.04、Windows 11、WSL 2、Python 3.10 、bisheng 1.1.1

背景:需要bisheng二开商用,故而此处进行本地部署,便于后期调试开发

时间:20250519

说明:根据官方的教程,进行docker部署并登陆成功

注意:本节仅使用docker部署,后面会说明前后端代码运行部署,其他使用docker部署。其中用到的端口较多,请确保端口未处于使用状态

git代码地址:BISHENG github地址链接

官方文档地址:BISHENG - 私有化部署

二、说明

1、镜像说明

bisheng的docker镜像共有九个, 分别如下:

BISHENG的docker组件构成
序号 镜像组件名称镜像组件版本
1backed1.1.1
2frontend1.1.1
3redis 7.0.4
4MySQL8.0
5milvus2.3.3
6minio2023-03-20T20-16-18Z 
7onlyoffice7.1.1
8elasticsearch8.12.0
9etcd3.5.5

 上述内容源于下图

2、本节内容

本节内容计划实现的是:根据官方文档,实现docker部署并运行

docker部署使用Ubuntu(Ubuntu已安装docker),后期的前后端分离部署使用open Euler

由于官方1.2.0版本(dev)支持python >=3.10,而1.1.1版本支持python >= 3.9,所以使用Open Euler 23.03版本,该版本默认的python版本为3.10

三、docker部署

docker安装参考:Linux子系统安装docker-engine,国内镜像_engine如何在linux安装-CSDN博客

1、克隆代码

# 如果系统中有git命令,可以直接下载毕昇代码
git clone https://github.com/dataelement/bisheng.git
# 进入安装目录
cd bisheng/docker

# 如果系统没有没有git命令,可以下载毕昇代码zip包
wget https://github.com/dataelement/bisheng/archive/refs/heads/main.zip
# 解压并进入安装目录
unzip main.zip && cd bisheng-main/docker

2、运行镜像

docker-compose up -d

此时会报错,如下:

jack@Laptop-L14-gen4:~/bisheng-blog/bisheng/docker/bisheng-main/docker$ docker-compose up -d
ERROR: The Compose file './docker-compose.yml' is invalid because:
services.office.environment.JWT_ENABLED contains false, which is an invalid type, it should be a string, number, or a null

修改docker-com文件的48行,在false上加上双引号如下:

 46     environment:
 47       TZ: Asia/Shanghai
 48       JWT_ENABLED: "false"

再次运行,出现如下界面:

3、可能的错误信息

jack@Laptop-L14-gen4:~/bisheng-blog/bisheng/docker$ docker-compose up -d
Recreating 5be896b66630_bisheng-mysql ...
Recreating 9f92111be526_milvus-minio  ...
Recreating 70b6a9c7768d_milvus-etcd   ...
Recreating 0ff268aad0df_bisheng-office ...
Recreating 76538f98c046_bisheng-redis  ...
Recreating d0f47f49074d_bisheng-es     ...

ERROR: for 5be896b66630_bisheng-mysql  'ContainerConfig'

ERROR: for 9f92111be526_milvus-minio  'ContainerConfig'

ERROR: for 70b6a9c7768d_milvus-etcd  'ContainerConfig'

ERROR: for 0ff268aad0df_bisheng-office  'ContainerConfig'

ERROR: for 76538f98c046_bisheng-redis  'ContainerConfig'

ERROR: for d0f47f49074d_bisheng-es  'ContainerConfig'

ERROR: for mysql  'ContainerConfig'

ERROR: for minio  'ContainerConfig'

ERROR: for etcd  'ContainerConfig'

ERROR: for office  'ContainerConfig'

ERROR: for redis  'ContainerConfig'

ERROR: for elasticsearch  'ContainerConfig'
Traceback (most recent call last):
  File "/usr/bin/docker-compose", line 33, in <module>
    sys.exit(load_entry_point('docker-compose==1.29.2', 'console_scripts', 'docker-compose')())
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/compose/cli/main.py", line 81, in main
    command_func()
  File "/usr/lib/python3/dist-packages/compose/cli/main.py", line 203, in perform_command
    handler(command, command_options)
  File "/usr/lib/python3/dist-packages/compose/metrics/decorator.py", line 18, in wrapper
    result = fn(*args, **kwargs)
             ^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/compose/cli/main.py", line 1186, in up
    to_attach = up(False)
                ^^^^^^^^^
  File "/usr/lib/python3/dist-packages/compose/cli/main.py", line 1166, in up
    return self.project.up(
           ^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/compose/project.py", line 697, in up
    results, errors = parallel.parallel_execute(
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/compose/parallel.py", line 108, in parallel_execute
    raise error_to_reraise
  File "/usr/lib/python3/dist-packages/compose/parallel.py", line 206, in producer
    result = func(obj)
             ^^^^^^^^^
  File "/usr/lib/python3/dist-packages/compose/project.py", line 679, in do
    return service.execute_convergence_plan(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/compose/service.py", line 579, in execute_convergence_plan
    return self._execute_convergence_recreate(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/compose/service.py", line 499, in _execute_convergence_recreate
    containers, errors = parallel_execute(
                         ^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/compose/parallel.py", line 108, in parallel_execute
    raise error_to_reraise
  File "/usr/lib/python3/dist-packages/compose/parallel.py", line 206, in producer
    result = func(obj)
             ^^^^^^^^^
  File "/usr/lib/python3/dist-packages/compose/service.py", line 494, in recreate
    return self.recreate_container(
           ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/compose/service.py", line 612, in recreate_container
    new_container = self.create_container(
                    ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/compose/service.py", line 330, in create_container
    container_options = self._get_container_create_options(
                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/compose/service.py", line 921, in _get_container_create_options
    container_options, override_options = self._build_container_volume_options(
                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/compose/service.py", line 960, in _build_container_volume_options
    binds, affinity = merge_volume_bindings(
                      ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/compose/service.py", line 1548, in merge_volume_bindings
    old_volumes, old_mounts = get_container_data_volumes(
                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/compose/service.py", line 1579, in get_container_data_volumes
    container.image_config['ContainerConfig'].get('Volumes') or {}
    ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^
KeyError: 'ContainerConfig'

如出现上述错误信息,查看是否存在容器(运行与停止的),如下:

jack@Laptop-L14-gen4:~/bisheng-blog/bisheng/docker$ docker ps -a
CONTAINER ID   IMAGE                                      COMMAND                  CREATED        STATUS                        PORTS                                                           NAMES
75bcb85e2b89   dataelement/bisheng-frontend:v1.1.1        "/docker-entrypoint.…"   40 hours ago   Exited (0) 11 minutes ago                                                                     bisheng-frontend
385f2dba3966   dataelement/bisheng-backend:v1.1.1         "sh entrypoint.sh"       40 hours ago   Exited (137) 11 minutes ago                                                                   bisheng-backend
640ad23afa2b   milvusdb/milvus:v2.3.3                     "/tini -- milvus run…"   40 hours ago   Exited (0) 11 minutes ago                                                                     milvus-standalone
9f92111be526   minio/minio:RELEASE.2023-03-20T20-16-18Z   "/usr/bin/docker-ent…"   40 hours ago   Exited (0) 11 minutes ago                                                                     9f92111be526_milvus-minio
70b6a9c7768d   quay.io/coreos/etcd:v3.5.5                 "etcd -advertise-cli…"   40 hours ago   Exited (0) 11 minutes ago                                                                     70b6a9c7768d_milvus-etcd
76538f98c046   redis:7.0.4                                "docker-entrypoint.s…"   40 hours ago   Exited (0) 11 minutes ago                                                                     76538f98c046_bisheng-redis
5be896b66630   mysql:8.0                                  "docker-entrypoint.s…"   40 hours ago   Exited (0) 11 minutes ago                                                                     5be896b66630_bisheng-mysql
0ff268aad0df   onlyoffice/documentserver:7.1.1            "/app/ds/run-documen…"   40 hours ago   Exited (137) 11 minutes ago                                                                   0ff268aad0df_bisheng-office
d0f47f49074d   bitnami/elasticsearch:8.12.0               "/opt/bitnami/script…"   40 hours ago   Exited (143) 11 minutes ago                                                                   d0f47f49074d_bisheng-es
5257cf9b2426   qdrant/qdrant                              "./entrypoint.sh"        3 weeks ago    Exited (255) 2 weeks ago      0.0.0.0:6333-6334->6333-6334/tcp, :::6333-6334->6333-6334/tcp   distracted_lamport
b28179c3b79b   qdrant/qdrant                              "./entrypoint.sh"        3 weeks ago    Exited (255) 3 weeks ago      0.0.0.0:6333-6334->6333-6334/tcp, :::6333-6334->6333-6334/tcp   bold_beaver
b00d21f614f7   hello-world                                "/hello"                 3 weeks ago    Exited (0) 3 weeks ago                                                                        objective_khayyam
114b2a816fae   ubuntu1:8080                               "/bin/sh -c 'npm i &…"   7 weeks ago    Exited (255) 7 weeks ago      0.0.0.0:8080->8080/tcp, :::8080->8080/tcp                       light_house

该问题出自容器ID重复(bisheng的9个容器ID始终不变),当启动后,存在停止的容器,导致docker-compose启动镜像失败

在当前目录下执行:

docker-compose down

该命令实现了关闭容器并删除的功能

四、页面测试

1、注册用户

地址:localhost:3001

2、登陆成功

3、添加模型

 五、结语

1、小结

本文完全按照官方文档进行部署,难度基本不存在。因部分bug存在,以及改内容是下一节的基础,故而此处进行了简单记录

2、后续内容

下一节想要实现的功能如下:

1、代码运行bisheng后端,使用vscode实现

2、前端代码使用nginx运行

3、其余组件使用docker-compose运行

这样就可以实现真实的开发环境

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2380191.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何用Python批量解压ZIP文件?快速解决方案

如何用Python批量解压ZIP文件&#xff1f;快速解决方案 文章目录 **如何用Python批量解压ZIP文件&#xff1f;快速解决方案**代码结果详细解释 话不多说&#xff0c;先上干货&#xff01;&#xff01;&#xff01; 代码 import os import zipfiledef unzip_file(dir_path: str…

DriveGenVLM:基于视觉-语言模型的自动驾驶真实世界视频生成

《DriveGenVLM: Real-world Video Generation for Vision Language Model based Autonomous Driving》2024年8月发表&#xff0c;来自哥伦比亚大学的论文。 自动驾驶技术的进步需要越来越复杂的方法来理解和预测现实世界的场景。视觉语言模型&#xff08;VLM&#xff09;正在成…

企业标准信息公共服务平台已开放标准通编辑器访问入口

标准通 数字化标准编辑器 专业、高效、便捷 企业标准信息公共服务平台 近日&#xff0c;企业标准信息公共服务平台已开放标准通编辑器访问入口&#xff0c;可进入官网指定版块使用&#xff01; 核心功能亮点 解决企业痛点 传统标准编制&#xff0c;需反复核对格式、逐条…

进阶-数据结构部分:1、数据结构入门

飞书文档https://x509p6c8to.feishu.cn/wiki/HRLkwznHiiOgZqkqhLrcZNqVnLd 一、存储结构 顺序存储 链式存储 二、常用数据结构 2.1、栈 先进后出 场景&#xff1a; 后退/前进功能&#xff1a;网页浏览器中的后退和前进按钮可以使用栈来实现。在浏览网页时&#xff0c;每次…

React 19中useContext不需要Provider了。

文章目录 前言一、React 19中useContext移除了Provider&#xff1f;二、使用步骤总结 前言 在 React 19 中&#xff0c;useContext 的使用方式有所更新。开发者现在可以直接使用 作为提供者&#xff0c;而不再需要使用 <Context.Provider>。这一变化简化了代码结构&…

Json schema校验json字符串(networknt/json-schema-validator库)

学习链接 json-schema官网 - 英文 jsonschemavalidator 可在线校验网站 networknt的json-schema-validator github地址 networknt的json-schema-validator 个人gitee地址 - 里面有md文档说明和代码示例 JSON Schema 入门指南&#xff1a;如何定义和验证 JSON 数据结构 JS…

交易所开发:构建功能完备的金融基础设施全流程指南

交易所开发&#xff1a;构建功能完备的金融基础设施全流程指南 ——从技术架构到合规安全的系统性解决方案 一、开发流程&#xff1a;从需求分析到运维优化 开发一款功能完备的交易所需要遵循全生命周期管理理念&#xff0c;涵盖市场定位、技术实现、安全防护和持续迭代四大阶…

Axure疑难杂症:统计分析页面引入Echarts示例动态效果

亲爱的小伙伴,在您浏览之前,烦请关注一下,在此深表感谢! Axure产品经理精品视频课已登录CSDN可点击学习https://edu.csdn.net/course/detail/40420 课程主题:统计分析页面引入Echarts示例动态效果 主要内容:echart示例引入、大小调整、数据导入 应用场景:统计分析页面…

展锐Android14及更新版本split_build编译方法

更改split_build.py文件内容后按照下面方法编译&#xff1a; zip -r sys/vendor/sprd/release/split_build.zip sys/vendor/sprd/release/split_build/ rm -r sys/vendor/sprd/release/split_build/ cp -r vnd/vendor/sprd/release/split_build/ sys/vendor/sprd/release/cd s…

青少年ctf平台应急响应-应急响应2

题目&#xff1a; 当前服务器被创建了一个新的用户&#xff0c;请提交新用户的用户名&#xff0c;得到的结果 ssh rootchallenge.qsnctf.com -p 30327 这个命令用于通过 SSH 协议连接到指定的远程服务器。具体解释如下&#xff1a; ssh&#xff1a;这是在 Unix-like 系统中…

k8s监控方案实践补充(二):使用kube-state-metrics获取资源状态指标

k8s监控方案实践补充&#xff08;二&#xff09;&#xff1a;使用kube-state-metrics获取资源状态指标 文章目录 k8s监控方案实践补充&#xff08;二&#xff09;&#xff1a;使用kube-state-metrics获取资源状态指标一、Metrics Server简介二、kube-state-metrics实战部署1. 创…

基于SpringBoot的小型民营加油站管理系统

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏&#xff1a;…

技术架构缺乏灵活性,如何应对变化需求?

技术架构缺乏灵活性会导致企业在面临市场变化、用户需求演化或新技术出现时难以及时响应&#xff0c;直接影响产品更新速度与竞争力。要有效应对变化需求&#xff0c;需要从引入模块化架构设计、推动微服务拆分、加强架构治理与决策机制、构建中台与平台化能力等方面系统推进。…

【AI时代】Java程序员大模型应用开发详细教程(上)

目录 一、大模型介绍 1. 大模型介绍 1.1 什么是大模型 1.2 技术储备 1.3 大模型的分类 2. 入门案例 3.Token的介绍 二、提示词工程 1. 好玩的提示词案例 1.1 翻译软件 1.2 让Deepseek绘画 1.3 生成数据 1.4 代码生成 2. 提示词介绍 3. Prompt Engineering最佳实…

虚拟网络编辑器

vmnet1 仅主机模式 hostonly 功能&#xff1a;虚拟机只能和宿主机通过vmnet1通信&#xff0c;不可连接其他网络&#xff08;包括互联网&#xff09; vmnet8 地址转换模式 NAT 功能&#xff1a;虚拟机可以和宿主通过vmnet8通信&#xff0c;并且可以连接其他网络&#xff0c;但是…

第31讲 循环缓冲区与命令解析

串口在持续接收数据时容易发生数据黏包&#xff08;先接收的数据尚未被处理&#xff0c;后面的数据已经将内存覆盖&#xff09;的情况&#xff0c;循环缓冲区的本质就是将串口接受到的数据马上拷贝到另外一块内存之中。为了避免新来的数据覆盖掉尚未处理的数据&#xff0c;一方…

数据结构(十)——排序

一、选择排序 1.简单选择排序 基本思想&#xff1a;假设排序表为[1,…,n]&#xff0c;第i趟排序即从[i,…,n]中选择关键字最小的元素与L[i]交换 eg&#xff1a;给定关键字序列{87&#xff0c;45&#xff0c;78&#xff0c;32&#xff0c;17&#xff0c;65&#xff0c;53&…

美蛋工具箱:一站式解决图片、视频、音频和文档处理需求的聚合神器

先放下载链接:夸克网盘下载 宝子们&#xff0c;今天不啰嗦&#xff0c;直接给大家安利一款超好用的聚合工具&#xff0c;有需要的小伙伴赶紧码住&#xff01; 今天要介绍的这款工具叫美蛋工具箱&#xff0c;它是一款聚合类工具。这个软件是绿色版的&#xff0c;聚合了图片工具…

python打卡day16

NumPy 数组基础 因为前天说了shap&#xff0c;这里涉及到数据形状尺寸问题&#xff0c;所以需要在这一节说清楚&#xff0c;后续的神经网络我们将要和他天天打交道。 知识点&#xff1a; numpy数组的创建&#xff1a;简单创建、随机创建、遍历、运算numpy数组的索引&#xff1a…

Redis 学习笔记 5:分布式锁

Redis 学习笔记 5&#xff1a;分布式锁 在前文中学习了如何基于 Redis 创建一个简单的分布式锁。虽然在大多数情况下这个锁已经可以满足需要&#xff0c;但其依然存在以下缺陷&#xff1a; 事实上一般而言&#xff0c;我们可以直接使用 Redisson 提供的分布式锁而非自己创建。…