ImportError:libgthread-2.0.so.0:无法打开共享对象文件:使用Docker容器导入cv 2时无此文件或目录

z31licg0  于 2023-06-22  发布在  Docker
关注(0)|答案(2)|浏览(184)

我在本地机器上用streamlit,OpenCV和Torch构建了一个Web应用程序。整个项目进行得很顺利,直到我构建了一个Docker文件,并准备将其传输到我的Google Cloud Platform。谁能告诉我到底哪里出了问题?

下面是我的Dockerfile:

FROM pytorch/pytorch:latest
RUN pip install virtualenv
ENV VIRTUAL_ENV=/venv
RUN virtualenv venv -p python3
ENV PATH="VIRTUAL_ENV/bin:$PATH"

WORKDIR /app
ADD . /app

# Install dependencies
RUN pip install -r requirements.txt

# copying all files over
COPY . /app

# Expose port 
ENV PORT 8501

# cmd to launch app when container is run
CMD streamlit run app.py

# streamlit-specific commands for config
ENV LC_ALL=C.UTF-8
ENV LANG=C.UTF-8
RUN mkdir -p /root/.streamlit
RUN bash -c 'echo -e "\
[general]\n\
email = \"\"\n\
" > /root/.streamlit/credentials.toml'

RUN bash -c 'echo -e "\
[server]\n\
enableCORS = false\n\
" > /root/.streamlit/config.toml'

和requirements.txt:

albumentations==0.4.5
matplotlib==3.2.2
numpy==1.19.0
opencv-python==4.1.0.25
# opencv-python-headless==4.2.0.34
pandas==1.0.5
Pillow==7.1.2
scipy==1.5.0
streamlit==0.62.0
tjrkku2a

tjrkku2a1#

也许,你应该在pip之前运行以下命令。

apt update
apt-get install -y libglib2.0-0 libsm6 libxrender1 libxext6
6tqwzwtp

6tqwzwtp2#

任何人遇到这个问题,并希望安装最小数量的外部软件包,这解决了在一个docker镜像中使用open-cvtorch

RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install\
    libgl1\
    libgl1-mesa-glx \ 
    libglib2.0-0 -y

P.S.:注意apt-get update和apt-get是如何组合在一起的。
附注:正如胡玉所说:在pip命令之前将其包含在Dockerfile中。

相关问题