[Docker + OpenCV] libGL.so.1 라이브러리 ImportError에러

Y_Sevin·2023년 6월 16일
0
post-custom-banner

문제

최근 Docker 컨테이너 내에서 FastAPI서버를 실행하기위해 작업하던 중,
ImportError: libGL.so.1: cannot open shared object file: No such file or directory 에러 메시지를 마주했다.

import cv2 # 에러발생

에러가 발생하는 위치를 확인해보니 opencv를 import하는 과정에서 발생한 에러라는 것을 확인할 수 있었다.


해결

RUN pip install opencv-python
RUN apt-get update && apt-get -y install libgl1-mesa-glx  #추가

원인

OpenCV 라이브러리는 OpenGL 라이브러리(libGL.so.1)에 종속성을 가진다.
해당 라이브러리는 이미지나 비디오 표시와 같은 그래픽 처리와 관련된 작업을 수행할 때 사용하는데, Docker같이 헤드리스 환경(그래픽 디스플레이가 없는 환경)은 이러한 라이브러리가 존재하지 않기 때문에 이러한 에러가 발생하는 것 같다.

때문에 Dockerfile에 libgl1-mesa-glx를 추가하여 OpenGL 라이브러리를 제공한다면 문제가 해결된다.

profile
매일은 아니더라도 꾸준히 올리자는 마음으로 시작하는 개발블로그😎
post-custom-banner

0개의 댓글