Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 由于libGl错误,无法运行docker映像_Python 3.x_Docker_Opencv_Matplotlib_Dockerfile - Fatal编程技术网

Python 3.x 由于libGl错误,无法运行docker映像

Python 3.x 由于libGl错误,无法运行docker映像,python-3.x,docker,opencv,matplotlib,dockerfile,Python 3.x,Docker,Opencv,Matplotlib,Dockerfile,Dockerfile FROM python:3.6.8 COPY . /app WORKDIR /app RUN pip3 install --upgrade pip RUN pip3 install opencv-python==4.3.0.38 RUN pip3 install -r requirements.txt EXPOSE 80 CMD ["python3", "server.py"] requirements.txt Flask==0.1

Dockerfile

FROM python:3.6.8
COPY . /app
WORKDIR /app
RUN pip3 install --upgrade pip
RUN pip3 install opencv-python==4.3.0.38
RUN pip3 install -r requirements.txt
EXPOSE 80
CMD ["python3", "server.py"]
requirements.txt

Flask==0.12
Werkzeug==0.16.1
boto3==1.14.40
torch
torchvision==0.7.0
numpy==1.15.4
sklearn==0.0
scipy==1.2.1
scikit-image==0.14.2
pandas==0.24.2

docker生成成功,但docker运行失败,出现错误

INFO:matplotlib.font_manager:Generating new fontManager, this may take some time...
PyTorch Version:  1.6.0
Torchvision Version:  0.7.0
Traceback (most recent call last):
  File "server.py", line 7, in <module>
    from pipeline_prediction.pipeline import ml_pipeline 
  File "/app/pipeline_prediction/pipeline.py", line 3, in <module>
    from segmentation_color import get_swatch_color_from_segmentation
  File "pipeline_prediction/segmentation_color.py", line 7, in <module>
    import cv2
  File "/usr/local/lib/python3.6/site-packages/cv2/__init__.py", line 5, in <module>
    from .cv2 import *
ImportError: libGL.so.1: cannot open shared object file: No such file or directory

但这对我不起作用。也看了,但我没有Ubuntu作为基础图像,所以这个安装将不会为我工作,如答案中所列


让我知道一种方法来实现这一点。

我可以通过对docker文件进行以下更改来运行docker容器

FROM python:3.6.8
COPY . /app
WORKDIR /app
ENV DEBIAN_FRONTEND noninteractive
RUN apt-get update -y
RUN apt install libgl1-mesa-glx -y
RUN apt-get install 'ffmpeg'\
    'libsm6'\
    'libxext6'  -y
RUN pip3 install --upgrade pip

RUN pip3 install opencv-python==4.3.0.38
RUN pip3 install -r requirements.txt
EXPOSE 80
CMD ["python3", "server.py"]
解决libGl错误所需的行

RUN apt install libgl1-mesa-glx -y
RUN apt-get install 'ffmpeg'\
    'libsm6'\
    'libxext6'  -y

在未更新ubuntu环境的情况下无法运行。此外,将docker映像创建为非交互式有助于跳过任何交互式命令行输入

,因为
python:
映像基于Debian,链接问题中的
apt get install
应该可以工作。您需要显式选择一个
python:-alpine
image./bin/sh:apt-get:notfound命令'/bin/sh-c apt-get-install'ffmpeg''libsm6''libxext6'-y'返回了一个非零代码:127是我使用基于alpine的映像时得到的,或者不是。'/bin/sh-c apt-install libgl1 mesa glx'命令返回了一个非零代码:1与还有其他选择。
FROM python:3.6.8
COPY . /app
WORKDIR /app
ENV DEBIAN_FRONTEND noninteractive
RUN apt-get update -y
RUN apt install libgl1-mesa-glx -y
RUN apt-get install 'ffmpeg'\
    'libsm6'\
    'libxext6'  -y
RUN pip3 install --upgrade pip

RUN pip3 install opencv-python==4.3.0.38
RUN pip3 install -r requirements.txt
EXPOSE 80
CMD ["python3", "server.py"]
RUN apt install libgl1-mesa-glx -y
RUN apt-get install 'ffmpeg'\
    'libsm6'\
    'libxext6'  -y