bisheng系列(一)- 本地部署(Docker)_bisheng部署
目录
一、导读
二、说明
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镜像共有九个, 分别如下:
上述内容源于下图
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 -dRecreating 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 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 -aCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES75bcb85e2b89 dataelement/bisheng-frontend:v1.1.1 \"/docker-entrypoint.…\" 40 hours ago Exited (0) 11 minutes ago bisheng-frontend385f2dba3966 dataelement/bisheng-backend:v1.1.1 \"sh entrypoint.sh\" 40 hours ago Exited (137) 11 minutes ago bisheng-backend640ad23afa2b milvusdb/milvus:v2.3.3 \"/tini -- milvus run…\" 40 hours ago Exited (0) 11 minutes ago milvus-standalone9f92111be526 minio/minio:RELEASE.2023-03-20T20-16-18Z \"/usr/bin/docker-ent…\" 40 hours ago Exited (0) 11 minutes ago 9f92111be526_milvus-minio70b6a9c7768d quay.io/coreos/etcd:v3.5.5 \"etcd -advertise-cli…\" 40 hours ago Exited (0) 11 minutes ago 70b6a9c7768d_milvus-etcd76538f98c046 redis:7.0.4 \"docker-entrypoint.s…\" 40 hours ago Exited (0) 11 minutes ago 76538f98c046_bisheng-redis5be896b66630 mysql:8.0 \"docker-entrypoint.s…\" 40 hours ago Exited (0) 11 minutes ago 5be896b66630_bisheng-mysql0ff268aad0df onlyoffice/documentserver:7.1.1 \"/app/ds/run-documen…\" 40 hours ago Exited (137) 11 minutes ago 0ff268aad0df_bisheng-officed0f47f49074d bitnami/elasticsearch:8.12.0 \"/opt/bitnami/script…\" 40 hours ago Exited (143) 11 minutes ago d0f47f49074d_bisheng-es5257cf9b2426 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_lamportb28179c3b79b 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_beaverb00d21f614f7 hello-world \"/hello\" 3 weeks ago Exited (0) 3 weeks ago objective_khayyam114b2a816fae 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运行
这样就可以实现真实的开发环境