目錄
一、導讀
二、說明
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鏡像共有九個,?分別如下:
序號? | 鏡像組件名稱 | 鏡像組件版本 |
---|---|---|
1 | backed | 1.1.1 |
2 | frontend | 1.1.1 |
3 | redis? | 7.0.4 |
4 | MySQL | 8.0 |
5 | milvus | 2.3.3 |
6 | minio | 2023-03-20T20-16-18Z? |
7 | onlyoffice | 7.1.1 |
8 | elasticsearch | 8.12.0 |
9 | etcd | 3.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運行
這樣就可以實現真實的開發環境