ImportError: libGL.so.1: cannot open shared object file: No such file or directory

这是什么问题,怎么修改这个问题

[+] Running 1/2gged multidoc_scanner_new-api:latest
 ✔ Service api     Built                                                                                                                         206.7s 
 ⠋ Service worker  Building                                                                                                                        0.0s 
Step 1/9 : FROM python:3.11
 ---> 916e252c0f56
Step 2/9 : WORKDIR /home/project
 ---> Using cache
 ---> ffa859d1cc24
Step 3/9 : ENV PIP_DISABLE_PIP_VERSION_CHECK=1     PIP_PROGRESS_BAR=off     PIP_DEFAULT_TIMEOUT=60
 ---> Using cache
 ---> 5d291c971b43
Step 4/9 : COPY mirrors/requirements.txt /tmp/requirements.txt
 ---> Using cache
 ---> 32894983500f
Step 5/9 : RUN python -m pip install --no-cache-dir     -r /tmp/requirements.txt     -i https://pypi.tuna.tsinghua.edu.cn/simple
 ---> Using cache
 ---> dcbd0dff62b1
Step 6/9 : COPY . /home/project
 ---> Using cache
 ---> 9e07a4375441
Step 7/9 : RUN chmod +x /home/project/docker-entrypoint.sh &&     mkdir -p /home/project/services/temp_conversion_files &&     chmod 777 /home/project/services/temp_conversion_files
 ---> Using cache
 ---> e8ee8a645780
Step 8/9 : ENTRYPOINT ["/bin/bash", "docker-entrypoint.sh"]
 ---> Using cache
 ---> 583c92710450
Step 9/9 : LABEL com.docker.compose.image.builder=classic
 ---> Using cache
[+] Running 6/660e
 ✔ Service api                              Built                                                                                                206.7s 
 ✔ Service worker                           Built                                                                                                  0.1s 
 ✔ api                                      Built                                                                                                  0.0s 
 ✔ worker                                   Built                                                                                                  0.0s 
 ✔ Container multidoc_scanner_api           Recreated                                                                                              0.0s 
 ✔ Container multidoc_scanner_new-worker-1  Recreated                                                                                              0.0s 
Attaching to multidoc_scanner_api, worker-1
multidoc_scanner_api  | ==========================================
multidoc_scanner_api  | MultiDoc Scanner Service
multidoc_scanner_api  | ==========================================
multidoc_scanner_api  | CODE_ENV: dev
multidoc_scanner_api  | SERVICE_TYPE: api
multidoc_scanner_api  | ==========================================
multidoc_scanner_api  | 🚀 Starting FastAPI Service...
multidoc_scanner_api  | Workers: 1
multidoc_scanner_api  | ==========================================
multidoc_scanner_api  | INFO:     Started server process [1]
multidoc_scanner_api  | INFO:     Waiting for application startup.
multidoc_scanner_api  | INFO:     Application startup complete.
multidoc_scanner_api  | INFO:     Uvicorn running on http://0.0.0.0:8000 (Press CTRL+C to quit)
worker-1              | ==========================================
worker-1              | MultiDoc Scanner Service
worker-1              | ==========================================
worker-1              | CODE_ENV: dev
worker-1              | SERVICE_TYPE: worker
worker-1              | ==========================================
worker-1              | ⚙️  Starting Task Worker Service...
worker-1              | ==========================================
worker-1              | 当前环境变量 CODE_ENV=dev, 需要读取 /home/project/conf/dev.toml
worker-1              | 2025-10-31 06:26:42.379 | WARNING  | services.vision_model:__init__:61 - Volcengine SDK 未安装,使用HTTP方式调用API
worker-1              | Traceback (most recent call last):
worker-1              |   File "/home/project/worker.py", line 11, in <module>
worker-1              |     from apps.workers.task_worker import TaskWorker
worker-1              |   File "/home/project/apps/workers/task_worker.py", line 18, in <module>
worker-1              |     from apps.workers.main import process_files_urls
worker-1              |   File "/home/project/apps/workers/main.py", line 13, in <module>
worker-1              |     from services.logics import document_processing_service
worker-1              |   File "/home/project/services/logics.py", line 16, in <module>
worker-1              |     from services.convert_files_service import convert_files_service
worker-1              |   File "/home/project/services/convert_files_service.py", line 15, in <module>
worker-1              |     from tools.pdf_converter import convert_pdf_to_images
worker-1              |   File "/home/project/tools/pdf_converter.py", line 15, in <module>
worker-1              |     from tools.pdf_split_table_detector import SplitTableDetector
worker-1              |   File "/home/project/tools/pdf_split_table_detector.py", line 4, in <module>
worker-1              |     import cv2
worker-1              |   File "/usr/local/lib/python3.11/site-packages/cv2/__init__.py", line 181, in <module>
worker-1              |     bootstrap()
worker-1              |   File "/usr/local/lib/python3.11/site-packages/cv2/__init__.py", line 153, in bootstrap
worker-1              |     native_module = importlib.import_module("cv2")
worker-1              |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
worker-1              |   File "/usr/local/lib/python3.11/importlib/__init__.py", line 126, in import_module
worker-1              |     return _bootstrap._gcd_import(name[level:], package, level)
worker-1              |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
worker-1              | ImportError: libGL.so.1: cannot open shared object file: No such file or directory
worker-1 exited with code 1 (restarting)
worker-1              | 当前环境变量 CODE_ENV=dev, 需要读取 /home/project/conf/dev.toml
worker-1              | 2025-10-31 06:26:43.826 | WARNING  | services.vision_model:__init__:61 - Volcengine SDK 未安装,使用HTTP方式调用API
worker-1              | Traceback (most recent call last):
worker-1              |   File "/home/project/worker.py", line 11, in <module>
worker-1              |     from apps.workers.task_worker import TaskWorker
worker-1              |   File "/home/project/apps/workers/task_worker.py", line 18, in <module>
worker-1              |     from apps.workers.main import process_files_urls
worker-1              |   File "/home/project/apps/workers/main.py", line 13, in <module>
worker-1              |     from services.logics import document_processing_service
worker-1              |   File "/home/project/services/logics.py", line 16, in <module>
worker-1              |     from services.convert_files_service import convert_files_service
worker-1              |   File "/home/project/services/convert_files_service.py", line 15, in <module>
worker-1              |     from tools.pdf_converter import convert_pdf_to_images
worker-1              |   File "/home/project/tools/pdf_converter.py", line 15, in <module>
worker-1              |     from tools.pdf_split_table_detector import SplitTableDetector
worker-1              |   File "/home/project/tools/pdf_split_table_detector.py", line 4, in <module>
worker-1              |     import cv2
worker-1              |   File "/usr/local/lib/python3.11/site-packages/cv2/__init__.py", line 181, in <module>
worker-1              |     bootstrap()
worker-1              |   File "/usr/local/lib/python3.11/site-packages/cv2/__init__.py", line 153, in bootstrap
worker-1              |     native_module = importlib.import_module("cv2")
worker-1              |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
worker-1              |   File "/usr/local/lib/python3.11/importlib/__init__.py", line 126, in import_module
worker-1              |     return _bootstrap._gcd_import(name[level:], package, level)
worker-1              |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
worker-1              | ImportError: libGL.so.1: cannot open shared object file: No such file or directory
worker-1 exited with code 1 (restarting)
worker-1              | 当前环境变量 CODE_ENV=dev, 需要读取 /home/project/conf/dev.toml
worker-1              | 2025-10-31 06:26:45.336 | WARNING  | services.vision_model:__init__:61 - Volcengine SDK 未安装,使用HTTP方式调用API
worker-1              | Traceback (most recent call last):
worker-1              |   File "/home/project/worker.py", line 11, in <module>
worker-1              |     from apps.workers.task_worker import TaskWorker
worker-1              |   File "/home/project/apps/workers/task_worker.py", line 18, in <module>
worker-1              |     from apps.workers.main import process_files_urls
worker-1              |   File "/home/project/apps/workers/main.py", line 13, in <module>
worker-1              |     from services.logics import document_processing_service
worker-1              |   File "/home/project/services/logics.py", line 16, in <module>
worker-1              |     from services.convert_files_service import convert_files_service
worker-1              |   File "/home/project/services/convert_files_service.py", line 15, in <module>
worker-1              |     from tools.pdf_converter import convert_pdf_to_images
worker-1              |   File "/home/project/tools/pdf_converter.py", line 15, in <module>
worker-1              |     from tools.pdf_split_table_detector import SplitTableDetector
worker-1              |   File "/home/project/tools/pdf_split_table_detector.py", line 4, in <module>
worker-1              |     import cv2
worker-1              |   File "/usr/local/lib/python3.11/site-packages/cv2/__init__.py", line 181, in <module>
worker-1              |     bootstrap()
worker-1              |   File "/usr/local/lib/python3.11/site-packages/cv2/__init__.py", line 153, in bootstrap
worker-1              |     native_module = importlib.import_module("cv2")
worker-1              |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
worker-1              |   File "/usr/local/lib/python3.11/importlib/__init__.py", line 126, in import_module
worker-1              |     return _bootstrap._gcd_import(name[level:], package, level)
worker-1              |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
worker-1              | ImportError: libGL.so.1: cannot open shared object file: No such file or directory
worker-1 exited with code 1 (restarting)
worker-1              | 当前环境变量 CODE_ENV=dev, 需要读取 /home/project/conf/dev.toml
worker-1              | 2025-10-31 06:26:47.041 | WARNING  | services.vision_model:__init__:61 - Volcengine SDK 未安装,使用HTTP方式调用API
worker-1              | Traceback (most recent call last):
worker-1              |   File "/home/project/worker.py", line 11, in <module>
worker-1              |     from apps.workers.task_worker import TaskWorker
worker-1              |   File "/home/project/apps/workers/task_worker.py", line 18, in <module>
worker-1              |     from apps.workers.main import process_files_urls
worker-1              |   File "/home/project/apps/workers/main.py", line 13, in <module>
worker-1              |     from services.logics import document_processing_service
worker-1              |   File "/home/project/services/logics.py", line 16, in <module>
worker-1              |     from services.convert_files_service import convert_files_service
worker-1              |   File "/home/project/services/convert_files_service.py", line 15, in <module>
worker-1              |     from tools.pdf_converter import convert_pdf_to_images
worker-1              |   File "/home/project/tools/pdf_converter.py", line 15, in <module>
worker-1              |     from tools.pdf_split_table_detector import SplitTableDetector
worker-1              |   File "/home/project/tools/pdf_split_table_detector.py", line 4, in <module>
worker-1              |     import cv2
worker-1              |   File "/usr/local/lib/python3.11/site-packages/cv2/__init__.py", line 181, in <module>
worker-1              |     bootstrap()
worker-1              |   File "/usr/local/lib/python3.11/site-packages/cv2/__init__.py", line 153, in bootstrap
worker-1              |     native_module = importlib.import_module("cv2")
worker-1              |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
worker-1              |   File "/usr/local/lib/python3.11/importlib/__init__.py", line 126, in import_module
worker-1              |     return _bootstrap._gcd_import(name[level:], package, level)
worker-1              |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
worker-1              | ImportError: libGL.so.1: cannot open shared object file: No such file or directory
worker-1 exited with code 1 (restarting)
worker-1              | 当前环境变量 CODE_ENV=dev, 需要读取 /home/project/conf/dev.toml
worker-1              | 2025-10-31 06:26:49.124 | WARNING  | services.vision_model:__init__:61 - Volcengine SDK 未安装,使用HTTP方式调用API
worker-1              | Traceback (most recent call last):
worker-1              |   File "/home/project/worker.py", line 11, in <module>
worker-1              |     from apps.workers.task_worker import TaskWorker
worker-1              |   File "/home/project/apps/workers/task_worker.py", line 18, in <module>
worker-1              |     from apps.workers.main import process_files_urls
worker-1              |   File "/home/project/apps/workers/main.py", line 13, in <module>
worker-1              |     from services.logics import document_processing_service
worker-1              |   File "/home/project/services/logics.py", line 16, in <module>
worker-1              |     from services.convert_files_service import convert_files_service
worker-1              |   File "/home/project/services/convert_files_service.py", line 15, in <module>
worker-1              |     from tools.pdf_converter import convert_pdf_to_images
worker-1              |   File "/home/project/tools/pdf_converter.py", line 15, in <module>
worker-1              |     from tools.pdf_split_table_detector import SplitTableDetector
worker-1              |   File "/home/project/tools/pdf_split_table_detector.py", line 4, in <module>
worker-1              |     import cv2
worker-1              |   File "/usr/local/lib/python3.11/site-packages/cv2/__init__.py", line 181, in <module>
worker-1              |     bootstrap()
worker-1              |   File "/usr/local/lib/python3.11/site-packages/cv2/__init__.py", line 153, in bootstrap
worker-1              |     native_module = importlib.import_module("cv2")
worker-1              |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
worker-1              |   File "/usr/local/lib/python3.11/importlib/__init__.py", line 126, in import_module
worker-1              |     return _bootstrap._gcd_import(name[level:], package, level)
worker-1              |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
worker-1              | ImportError: libGL.so.1: cannot open shared object file: No such file or directory
worker-1 exited with code 1 (restarting)
worker-1              | 当前环境变量 CODE_ENV=dev, 需要读取 /home/project/conf/dev.toml
worker-1              | 2025-10-31 06:26:52.004 | WARNING  | services.vision_model:__init__:61 - Volcengine SDK 未安装,使用HTTP方式调用API
worker-1              | Traceback (most recent call last):
worker-1              |   File "/home/project/worker.py", line 11, in <module>
worker-1              |     from apps.workers.task_worker import TaskWorker
worker-1              |   File "/home/project/apps/workers/task_worker.py", line 18, in <module>
worker-1              |     from apps.workers.main import process_files_urls
worker-1              |   File "/home/project/apps/workers/main.py", line 13, in <module>
worker-1              |     from services.logics import document_processing_service
worker-1              |   File "/home/project/services/logics.py", line 16, in <module>
worker-1              |     from services.convert_files_service import convert_files_service
worker-1              |   File "/home/project/services/convert_files_service.py", line 15, in <module>
worker-1              |     from tools.pdf_converter import convert_pdf_to_images
worker-1              |   File "/home/project/tools/pdf_converter.py", line 15, in <module>
worker-1              |     from tools.pdf_split_table_detector import SplitTableDetector
worker-1              |   File "/home/project/tools/pdf_split_table_detector.py", line 4, in <module>
worker-1              |     import cv2
worker-1              |   File "/usr/local/lib/python3.11/site-packages/cv2/__init__.py", line 181, in <module>
worker-1              |     bootstrap()
worker-1              |   File "/usr/local/lib/python3.11/site-packages/cv2/__init__.py", line 153, in bootstrap
worker-1              |     native_module = importlib.import_module("cv2")
worker-1              |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
worker-1              |   File "/usr/local/lib/python3.11/importlib/__init__.py", line 126, in import_module
worker-1              |     return _bootstrap._gcd_import(name[level:], package, level)
worker-1              |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
worker-1              | ImportError: libGL.so.1: cannot open shared object file: No such file or directory
worker-1 exited with code 1 (restarting)
worker-1              | 当前环境变量 CODE_ENV=dev, 需要读取 /home/project/conf/dev.toml
worker-1              | 2025-10-31 06:26:56.488 | WARNING  | services.vision_model:__init__:61 - Volcengine SDK 未安装,使用HTTP方式调用API
worker-1              | Traceback (most recent call last):
worker-1              |   File "/home/project/worker.py", line 11, in <module>
worker-1              |     from apps.workers.task_worker import TaskWorker
worker-1              |   File "/home/project/apps/workers/task_worker.py", line 18, in <module>
worker-1              |     from apps.workers.main import process_files_urls
worker-1              |   File "/home/project/apps/workers/main.py", line 13, in <module>
worker-1              |     from services.logics import document_processing_service
worker-1              |   File "/home/project/services/logics.py", line 16, in <module>
worker-1              |     from services.convert_files_service import convert_files_service
worker-1              |   File "/home/project/services/convert_files_service.py", line 15, in <module>
worker-1              |     from tools.pdf_converter import convert_pdf_to_images
worker-1              |   File "/home/project/tools/pdf_converter.py", line 15, in <module>
worker-1              |     from tools.pdf_split_table_detector import SplitTableDetector
worker-1              |   File "/home/project/tools/pdf_split_table_detector.py", line 4, in <module>
worker-1              |     import cv2
worker-1              |   File "/usr/local/lib/python3.11/site-packages/cv2/__init__.py", line 181, in <module>
worker-1              |     bootstrap()
worker-1              |   File "/usr/local/lib/python3.11/site-packages/cv2/__init__.py", line 153, in bootstrap
worker-1              |     native_module = importlib.import_module("cv2")
worker-1              |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
worker-1              |   File "/usr/local/lib/python3.11/importlib/__init__.py", line 126, in import_module
worker-1              |     return _bootstrap._gcd_import(name[level:], package, level)
worker-1              |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
worker-1              | ImportError: libGL.so.1: cannot open shared object file: No such file or directory
worker-1 exited with code 1 (restarting)
worker-1              | 当前环境变量 CODE_ENV=dev, 需要读取 /home/project/conf/dev.toml
worker-1              | 2025-10-31 06:27:04.177 | WARNING  | services.vision_model:__init__:61 - Volcengine SDK 未安装,使用HTTP方式调用API
worker-1              | Traceback (most recent call last):
worker-1              |   File "/home/project/worker.py", line 11, in <module>
worker-1              |     from apps.workers.task_worker import TaskWorker
worker-1              |   File "/home/project/apps/workers/task_worker.py", line 18, in <module>
worker-1              |     from apps.workers.main import process_files_urls
worker-1              |   File "/home/project/apps/workers/main.py", line 13, in <module>
worker-1              |     from services.logics import document_processing_service
worker-1              |   File "/home/project/services/logics.py", line 16, in <module>
worker-1              |     from services.convert_files_service import convert_files_service
worker-1              |   File "/home/project/services/convert_files_service.py", line 15, in <module>
worker-1              |     from tools.pdf_converter import convert_pdf_to_images
worker-1              |   File "/home/project/tools/pdf_converter.py", line 15, in <module>
worker-1              |     from tools.pdf_split_table_detector import SplitTableDetector
worker-1              |   File "/home/project/tools/pdf_split_table_detector.py", line 4, in <module>
worker-1              |     import cv2
worker-1              |   File "/usr/local/lib/python3.11/site-packages/cv2/__init__.py", line 181, in <module>
worker-1              |     bootstrap()
worker-1              |   File "/usr/local/lib/python3.11/site-packages/cv2/__init__.py", line 153, in bootstrap
worker-1              |     native_module = importlib.import_module("cv2")
worker-1              |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
worker-1              |   File "/usr/local/lib/python3.11/importlib/__init__.py", line 126, in import_module
worker-1              |     return _bootstrap._gcd_import(name[level:], package, level)
worker-1              |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
worker-1              | ImportError: libGL.so.1: cannot open shared object file: No such file or directory
worker-1 exited with code 1 (restarting)
worker-1              | =================

报的这个错:

ImportError: libGL.so.1: cannot open shared object file: No such file or directory

意思是:容器里安装的 OpenCV 是带 GUI/显示能力的版本(opencv-python),它运行时要去找系统的图形库 libGL.so.1,但你的镜像里没有这个系统库,所以直接崩了。

你这台信创麒麟上之前一旦在镜像里 apt-get install … 就会卡在 dpkg 内存那里,所以这次就别走 apt 装 libGL 了,换成不需要图形库的 OpenCV —— 也就是 opencv-python-headless。这是最稳的办法。

下面这样改 👇

方案一(推荐):换成 headless 版本
1. 改你的 mirrors/requirements.txt
找到里面的这一行(名字可能略有不同):

opencv-python

改成:

opencv-python-headless

如果原来限定了版本,比如:

opencv-python==4.10.0.84

就改成对应的 headless:

opencv-python-headless==4.10.0.84

2.	重新 build & up

docker-compose build worker
docker-compose up

这样进容器的还是 import cv2,但底下用的是不依赖 libGL.so.1 的版本,就不会再报这个错。

方案二(不推荐你现在用):镜像里装系统库

如果一定要保留 opencv-python,那 Dockerfile 里要加:

RUN apt-get update &&
apt-get install -y --no-install-recommends libgl1 &&
rm -rf /var/lib/apt/lists/*

但你这台机子前面 apt 装包就会在 dpkg-deb … lzma error: Cannot allocate memory 掉,所以这条路你现在走不通,除非你给 docker build 加更多内存 / 写本地源 / 做离线 deb。

所以,结论一句话:这是 OpenCV 要系统图形库但镜像里没有,直接把依赖从 opencv-python 换成 opencv-python-headless 再重建镜像就好了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MonkeyKing.sun

对你有帮助的话,可以打赏

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值