Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Docker build fails #4

Open
arianaa30 opened this issue May 20, 2024 · 3 comments
Open

Docker build fails #4

arianaa30 opened this issue May 20, 2024 · 3 comments

Comments

@arianaa30
Copy link

I was trying to build the docker image. But it failed:

Error at loading of ippIP library
Your application is dynamically linked with Intel(R) IPP libraries version 2021.9.0 (r0x4ff293fb)
No DLL from the list below is found on the system search path:
libippil9.so.10.8 (the most suitable for your CPU)
libippie9.so.10.8 (optional)
libippiy8.so.10.8 (optional)
libippin8.so.10.8 (optional)
libippim7.so.10.8 (optional)
Please provide a path to at least one of them
The command '/bin/sh -c ldd ${PREFIX}/bin/ffmpeg | cut -d ' ' -f 3 | xargs -i cp {} /usr/local/lib/ &&         cp /opt/intel/oneapi/ipp/latest/lib/intel64/libippik0.so.10.8 /usr/local/lib &&         cp /opt/intel/oneapi/ipp/latest/lib/intel64/libippsk0.so.10.8 /usr/local/lib &&         cp /opt/intel/oneapi/ipp/latest/lib/intel64/libippsn0.so.10.8 /usr/local/lib &&         cp /opt/intel/oneapi/ipp/latest/lib/intel64/libippsl9.so.10.8 /usr/local/lib &&         cp /opt/intel/oneapi/ipp/latest/lib/intel64/libippse9.so.10.8 /usr/local/lib &&         cp /opt/intel/oneapi/ipp/latest/lib/intel64/libippsy8.so.10.8 /usr/local/lib &&         cp /opt/intel/oneapi/ipp/latest/lib/intel64/libippsn8.so.10.8 /usr/local/lib &&         cp /opt/intel/oneapi/ipp/latest/lib/intel64/libippsm7.so.10.8 /usr/local/lib &&         cp -r ${PREFIX}/bin/* /usr/local/bin/ &&         cp -r ${PREFIX}/share/ffmpeg /usr/local/share/ &&         LD_LIBRARY_PATH=/usr/local/lib ffmpeg -buildconf &&         cp -r ${PREFIX}/include/libav* ${PREFIX}/include/libpostproc ${PREFIX}/include/libsw* /usr/local/include &&         mkdir -p /usr/local/lib/pkgconfig &&         for pc in ${PREFIX}/lib/pkgconfig/libav*.pc ${PREFIX}/lib/pkgconfig/libpostproc.pc ${PREFIX}/lib/pkgconfig/libsw*.pc; do           sed "s:${PREFIX}:/usr/local:g" <"$pc" >/usr/local/lib/pkgconfig/"${pc##*/}";         done' returned a non-zero code: 1
@cabirdme
Copy link
Contributor

If the ipp libraries are not being located, you might try poking through whichever dockerfile you are using ( e.g. Dockerfile.ubuntu22.04 ).
You could try modifying the ./configure param for building ffmpeg to include --extra-ldflags="-L/path-to-ipp's lib folder" or --extra-cflags="-I/path-to-ipp-headers
If you're still encountering issues, it could be helpful to share more about your system environment so that we can more easily reproduce. Things like what is your host OS, docker version, any arguments passed to docker_build.sh, anything else you can think to add.

@Fiooodooor
Copy link

@arianaa30 @cabirdme OpenVisualCloud namespace owners changed and I hope you are still interested in almost cost free video upscaling based on Xeon processors :-). First of all I would encourage you to check Intel® Tiber™ Broadcast Suite package that is updated at least weekly and it includes major functionalities including RAISR Video Super Resolution Library ffmpeg plugin - it should build the optimized image just by running build script:

Intel® Tiber™ Broadcast Suite package docker build script

Also there will be major update to this repository (RAISR), all the build scripts and Dockerfiles that fixes most of possible issues in build process and address missed best known methods for containers creation.

@arianaa30 To reference your issue, I will use Ubuntu 22.04 Docker as an example. The Dockerfile workflow only copy pre-assumed set of libraries from Intel IPP image in build stage to 'clean' Ubuntu 22.04 base stage, and for some processors this set is of dynamic libs is not enough (probably there is a chain of dependencies somewhere).

RUN command

Add just libippil9.so.10.8 or each optional also to the copy block:

# current
RUN \
ldd ${PREFIX}/bin/ffmpeg | cut -d ' ' -f 3 | xargs -i cp {} /usr/local/lib/ && \
        cp /opt/intel/oneapi/ipp/latest/lib/intel64/libippik0.so.10.8 /usr/local/lib && \
        cp /opt/intel/oneapi/ipp/latest/lib/intel64/libippsk0.so.10.8 /usr/local/lib && \
# modified
RUN \
ldd ${PREFIX}/bin/ffmpeg | cut -d ' ' -f 3 | xargs -i cp {} /usr/local/lib/ && \
        cp /opt/intel/oneapi/ipp/latest/lib/intel64/libippil9.so.10.8 /usr/local/lib && \
        cp /opt/intel/oneapi/ipp/latest/lib/intel64/libippik0.so.10.8 /usr/local/lib && \
        cp /opt/intel/oneapi/ipp/latest/lib/intel64/libippsk0.so.10.8 /usr/local/lib && \

and just build the Dockerfile then, It will no longer fail.

@Mionsz
Copy link
Collaborator

Mionsz commented Sep 13, 2024

Just now I see that I have made the comments using my private account instead of using the corporate one - so in case you @arianaa30 or/and @cabirdme will need assistance please contact me using this one - I check the the above one very rarely

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants