Python 3.x 由于libGl错误,无法运行docker映像
DockerfilePython 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
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