AWS LambdaにDockerで作ったイメージをアップロードして適用させようとした時の話
以下のエラー文が出たので対処
{
"errorMessage": "Unable to import module 'app': /lib64/libz.so.1: version `ZLIB_1.2.9' not found (required by /var/lang/lib/python3.8/site-packages/cv2/../opencv_python_headless.libs/libpng16-186fce2e.so.16.37.0)",
"errorType": "Runtime.ImportModuleError",
"stackTrace": []
}
OpenCV - AWS Lambda - /lib64/libz.so.1: version `ZLIB_1.2.9' not found
以下の記事を参考にしました
www.javafixing.com
具体的には、zlib-1.2.9.tar.gz( ダウンロード )をインストールし、LD_LIBRARY_PATHを通しました
Dockerfileとしては以下の記述の追加です
COPY zlib-1.2.9.tar.gz /tmp/ RUN yum install tar make -y WORKDIR /tmp/ RUN tar -xvf zlib-1.2.9.tar.gz WORKDIR /tmp/zlib-1.2.9 RUN ./configure; make; make install ENV LD_LIBRARY_PATH /usr/local/lib/:$LD_LIBRARY_PATH RUN rm -rf /tmp/zlib /tmp/zlib-1.2.9.tar.gz
おそらく何かのライブラリとかのバージョンを指定すれば解決する問題だったのかとは思いますが、今回は大本であるZLIBのコンパイル・インストールで対応しました。
誰かの役に立てれば幸いです