error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory
zak905 opened this issue · 2 comments
When running my go binary with this image (denismakogon/gocv-alpine:3.4.2-runtime) , I get this error:
error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory
My other go binaries are running fine on alpine without the opencv.
I got it to work using denismakogon/gocv-alpine:3.4.2-buildstage
image, but the image is very large ( 1.3 GB), what makes the difference between runtime (about 218 MB) and buildstage so big ?
I got it to work after copying some parts of runtime
dockerfile into my dockerfile:
FROM denismakogon/gocv-alpine:3.4.2-buildstage as build-stage
FROM denismakogon/ffmpeg-alpine:4.0
# OpenCV 3.4.1 shared objects from build-stage
COPY --from=build-stage /usr/local/lib64 /usr/local/lib64
COPY --from=build-stage /usr/local/lib64/pkgconfig/opencv.pc /usr/local/lib64/pkgconfig/opencv.pc
COPY --from=build-stage /usr/local/include/opencv /usr/local/include/opencv
COPY --from=build-stage /usr/local/include/opencv2 /usr/local/include/opencv2
ENV PKG="libstdc++ \
ca-certificates \
wget \
libjpeg-turbo \
libpng \
libwebp \
libwebp-dev \
tiff \
jasper-libs \
libavc1394 \
jasper-libs \
openblas \
libgphoto2 \
gstreamer \
gst-plugins-base "
RUN apk update && \
apk upgrade && \
apk add --no-cache ${PKG}
ENV PKG_CONFIG_PATH /usr/local/lib64/pkgconfig
ENV LD_LIBRARY_PATH /usr/local/lib64
ENV CGO_CPPFLAGS -I/usr/local/include
ENV CGO_CXXFLAGS "--std=c++1z"
ENV CGO_LDFLAGS "-L/usr/local/lib -lopencv_core -lopencv_face -lopencv_videoio -lopencv_imgproc -lopencv_highgui -lopencv_imgcodecs -lopencv_objdetect -lopencv_features2d -lopencv_video -lopencv_dnn -lopencv_xfeatures2d -lopencv_plot -lopencv_tracking"
The only thing that was causing issues is glibc
which has compatibility issues with libc6-compat
package which required for running go binaries in alpine (https://stackoverflow.com/questions/36279253/go-compiled-binary-wont-run-in-an-alpine-docker-container-on-ubuntu-host/50861580#50861580). Hope this helps somebody someday.