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

目录

一、导读

二、说明

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/Shanghai48       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 maincommand_func()File "/usr/lib/python3/dist-packages/compose/cli/main.py", line 203, in perform_commandhandler(command, command_options)File "/usr/lib/python3/dist-packages/compose/metrics/decorator.py", line 18, in wrapperresult = fn(*args, **kwargs)^^^^^^^^^^^^^^^^^^^File "/usr/lib/python3/dist-packages/compose/cli/main.py", line 1186, in upto_attach = up(False)^^^^^^^^^File "/usr/lib/python3/dist-packages/compose/cli/main.py", line 1166, in upreturn self.project.up(^^^^^^^^^^^^^^^^File "/usr/lib/python3/dist-packages/compose/project.py", line 697, in upresults, errors = parallel.parallel_execute(^^^^^^^^^^^^^^^^^^^^^^^^^^File "/usr/lib/python3/dist-packages/compose/parallel.py", line 108, in parallel_executeraise error_to_reraiseFile "/usr/lib/python3/dist-packages/compose/parallel.py", line 206, in producerresult = func(obj)^^^^^^^^^File "/usr/lib/python3/dist-packages/compose/project.py", line 679, in doreturn service.execute_convergence_plan(^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^File "/usr/lib/python3/dist-packages/compose/service.py", line 579, in execute_convergence_planreturn self._execute_convergence_recreate(^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^File "/usr/lib/python3/dist-packages/compose/service.py", line 499, in _execute_convergence_recreatecontainers, errors = parallel_execute(^^^^^^^^^^^^^^^^^File "/usr/lib/python3/dist-packages/compose/parallel.py", line 108, in parallel_executeraise error_to_reraiseFile "/usr/lib/python3/dist-packages/compose/parallel.py", line 206, in producerresult = func(obj)^^^^^^^^^File "/usr/lib/python3/dist-packages/compose/service.py", line 494, in recreatereturn self.recreate_container(^^^^^^^^^^^^^^^^^^^^^^^^File "/usr/lib/python3/dist-packages/compose/service.py", line 612, in recreate_containernew_container = self.create_container(^^^^^^^^^^^^^^^^^^^^^^File "/usr/lib/python3/dist-packages/compose/service.py", line 330, in create_containercontainer_options = self._get_container_create_options(^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^File "/usr/lib/python3/dist-packages/compose/service.py", line 921, in _get_container_create_optionscontainer_options, override_options = self._build_container_volume_options(^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^File "/usr/lib/python3/dist-packages/compose/service.py", line 960, in _build_container_volume_optionsbinds, affinity = merge_volume_bindings(^^^^^^^^^^^^^^^^^^^^^^File "/usr/lib/python3/dist-packages/compose/service.py", line 1548, in merge_volume_bindingsold_volumes, old_mounts = get_container_data_volumes(^^^^^^^^^^^^^^^^^^^^^^^^^^^File "/usr/lib/python3/dist-packages/compose/service.py", line 1579, in get_container_data_volumescontainer.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.mzph.cn/diannao/83933.shtml

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

相关文章

docker介绍与常用命令汇总

docker简介 docker是什么&#xff1f; Docker 是一个开源的应用容器引擎&#xff0c;它可以让开发者将应用与运行环境打包成一个标准的、可移植的容器&#xff08;Container&#xff09;&#xff0c;在任何地方都可以快速部署和运行&#xff0c;无需关心底层环境是否一致。 …

Android 中拖拽从一个组件到另外一个组件的写法(跨容器拖拽)

在 Android 中&#xff0c;拖拽一个图片&#xff08;例如 ImageView&#xff09;到另一个组件&#xff08;如 LinearLayout、FrameLayout 等容器&#xff09;涉及以下步骤&#xff1a; 准备工作 源组件&#xff1a;你从哪里开始拖动&#xff08;如 ImageView&#xff09;。 目…

火绒互联网安全软件:自主引擎,精准防御

在数字时代&#xff0c;网络安全是每一个用户都必须重视的问题。无论是个人用户还是企业用户&#xff0c;都需要一款高效、可靠的反病毒软件来保护设备免受恶意软件的侵害。今天&#xff0c;我们要介绍的 火绒互联网安全软件&#xff0c;就是这样一款由资深工程师主导研发并拥有…

使用亮数据代理IP+Python爬虫批量爬取招聘信息训练面试类AI智能体(手把手教学版)

文章目录 一、为什么要用代理IP&#xff1f;(重要&#xff01;&#xff01;&#xff01;)二、环境准备&#xff08;三件套走起&#xff09;2.1 安装必备库&#xff08;pip大法好&#xff09;2.2 获取亮数据代理&#xff08;官网注册送试用&#xff09; 三、编写爬虫代码&#x…

Android屏幕采集编码打包推送RTMP技术详解:从开发到优化与应用

在现代移动应用中&#xff0c;屏幕采集已成为一个广泛使用的功能&#xff0c;尤其是在实时直播、视频会议、远程教育、游戏录制等场景中&#xff0c;屏幕采集技术的需求不断增长。Android 平台为开发者提供了 MediaProjection API&#xff0c;这使得屏幕录制和采集变得更加简单…

互联网大厂Java求职面试:Spring AI与大模型交互的高级模式与自定义开发

互联网大厂Java求职面试&#xff1a;Spring AI与大模型交互的高级模式与自定义开发 在当今技术领域&#xff0c;随着AI和大模型技术的广泛应用&#xff0c;如何在复杂的系统架构中高效地集成这些技术成为了各大互联网公司关注的重点。本文将通过一场模拟的面试对话&#xff0c…

MySQL 8.0 OCP 1Z0-908 161-170题

Q161.Examine this command, which executes successfully: cluster.addInstance ( ‘:’,{recoveryMethod: ‘clone’ 1}) Which three statements are true? (Choose three.) A)The account used to perform this recovery needs the BACKUP_ ADMIN privilege. B)A target i…

蓝桥杯1447 砝码称重

问题描述 你有一架天平和 N 个砝码&#xff0c;这 N 个砝码重量依次是 W1,W2,⋅⋅⋅,WN​。 请你计算一共可以称出多少种不同的重量&#xff1f; 注意砝码可以放在天平两边。 输入格式 输入的第一行包含一个整数 N。 第二行包含 N 个整数&#xff1a;W1,W2,W3,⋅⋅⋅,WN​…

金融量化智能体,如何开发一个有效的策略?

原创内容第887篇&#xff0c;专注智能量化投资、个人成长与财富自由。 本周重构了网站&#xff0c;升级了最新的回测引擎&#xff0c;以及升级了论坛。 策略年化210%&#xff0c;夏普比3.47&#xff0c;系统源代码及策略均可下载 年化37.5%&#xff0c;回撤控制在16.8%&…

JavaScript 性能优化:调优策略与工具使用

引言 在当今的 Web 开发领域&#xff0c;性能优化已不再是锦上添花&#xff0c;而是产品成功的关键因素。据 Google 研究表明&#xff0c;页面加载时间每增加 3 秒&#xff0c;跳出率将提高 32%。而移动端用户如果页面加载超过 3 秒&#xff0c;有 53% 的用户会放弃访问。性能…

为 Jenkins添加 Windows Slave远程执行 python项目脚本

测试环境 JAVA JDK 1.7.0_13 (jdk-7u13-windows-i586.exe) Jenkins Win11 64 python项目环境 实践操作 1、新建与配置结点 【系统管理】-> 【管理结点】-> 【新建结点】, 如上&#xff0c;输入结点名称&#xff0c;勾选 【Dumb Slave】&#xff0c;点击【OK】 说明&am…

基于springboot3 VUE3 火车订票系统前后端分离项目适合新手学习的项目包含 智能客服 换乘算法

​ 博主介绍&#xff1a;专注于Java&#xff08;springboot ssm 等开发框架&#xff09; vue .net php phython node.js uniapp 微信小程序 等诸多技术领域和毕业项目实战、企业信息化系统建设&#xff0c;从业十五余年开发设计教学工作 ☆☆☆ 精彩专栏推荐订阅☆☆☆☆☆…

btc交易所关键需求区 XBIT反弹与上涨潜力分析​​

在加密货币市场的浪潮中&#xff0c;狗狗币&#xff08;DOGE&#xff09;近期的走势吸引了众多投资者的目光。根据XBIT分析&#xff0c;狗狗币刚刚踏入关键需求区&#xff0c;此前虽从高点大幅下跌了10%&#xff0c;但XBIT去中心化交易所平台分析师认为&#xff0c;短期内它有望…

宝塔+fastadmin:给项目添加定时任务

一、定时任务脚本编写 1. 使用 shebang 声明执行器 #!/usr/bin/env php 这是 Unix/Linux 系统中脚本文件的标准开头。表示这个脚本使用系统环境变量中的 php 来执行。2. 定义 ThinkPHP 入口路径并加载框架 define(APP_PATH, __DIR__ . /../../application/); require __DIR__…

每日Prompt:自拍生成摇头娃娃

提示词 将这张照片变成一个摇头娃娃&#xff1a;头部稍微放大&#xff0c;保持面部准确&#xff0c;身体卡通化。[把它放在书架上]。

【Tools】neovim操作指南

Neovim 中最常见、最实用的操作, 主要针对C 开发需求&#xff1a; &#x1f680; 基础操作 操作快捷键说明保存:w 或 ZZ保存当前文件退出:q 或 ZQ退出当前窗口保存并退出:wq 或 ZZ保存并退出强制退出:q!不保存直接退出撤销u撤销上一步重做<C-r>重做撤销搜索/xxx向下搜索…

Visual Studio 制作msi文件环境搭建

一、插件安装 a. 插件寻找 在 Visual Studio 2017 中&#xff0c;如果你希望安装用于创建 MSI 安装包的插件&#xff0c;第一步是&#xff1a;打开 Visual Studio 后&#xff0c;点击顶部菜单栏中的 “工具”&#xff08;Tools&#xff09;&#xff0c;然后选择下拉菜单中的 “…

深入解析 OpenManus:开源 AI 智能体框架的技术原理与实践

深入解析 OpenManus&#xff1a;开源 AI 智能体框架的技术原理与本地部署指南 在当今人工智能快速发展的时代&#xff0c;智能体&#xff08;Agent&#xff09;技术正逐渐成为推动自动化和智能化的关键力量。OpenManus&#xff0c;由 MetaGPT 团队开发的开源 AI 智能体框架&am…

利用 SQL Server 作业实现异步任务处理,简化系统架构

在现代企业系统中&#xff0c;异步任务是不可或缺的组成部分&#xff0c;例如&#xff1a; 电商系统中的订单超时取消&#xff1b; 报表系统中的异步数据导出&#xff1b; CRM 系统中的客户积分计算。 传统的实现方式通常涉及引入消息队列&#xff08;如 RabbitMQ、Kafka&a…

ubuntu sh安装包的安装方式

ubuntu sh安装包的安装方式以Miniconda2为例 https://repo.anaconda.com/miniconda/ 如果需要python2.7版本可下载以下版本 Miniconda2-latest-Linux-x86_64.sh 打开终端输入安装命令 sudo sh Miniconda2-latest-Linux-x86_64.sh 然后按提示安装&#xff0c;注意安装位置 …