QT 애플리케이션을 빌드하는 Dockerfile을 작성했으며 빌드에 몇 가지 문제가 있습니다. Nvidia-docker - 빌드 프로세스에서 libnvcuvid.so를 찾을 수 없습니다.
ninja: error: '/usr/lib/x86_64-linux-gnu/libnvcuvid.so', needed by 'bin/x64/release/*****/librtmpPlugin.so', missing and no known rule to make it
내가 임시 컨테이너에이 오류를 해결 심볼릭 링크에 추가 :
빌드 명령이 Dockerfile에있는 경우
, 그것은이 오류 trhowsln -s /usr/local/nvidia/lib64/libnvcuvid.so.1 /usr/lib/x86_64-linux-gnu/libnvcuvid.so
을하지만 추가 할 때 그 라인과 빌드 - 다시, 나는 여전히 같은 오류가 있어요.
처음에는 매달려있는 이미지에서 일부 캐시가 있지만 모든 문제를 해결하기 때문에 문제가 지속되는 것으로 보았습니다.
이 내 ENV 키의 일부는 다음과 같습니다
RUN mv /usr/lib/x86_64-linux-gnu/libOpenCL.so.1 /usr/lib/x86_64-inux-gnu/libOpenCL.so.1_old
RUN ln -s /usr/local/cuda/lib64/libOpenCL.so.1 /usr/lib/x86_64-linux-gnu/libOpenCL.so.1
RUN ln -s /usr/local/cuda-8.0/targets/x86_64-linux/lib/stubs/libcuda.so /usr/lib/x86_64-linux-gnu/libcuda.so
RUN ln -s /usr/local/cuda-8.0/targets/x86_64-linux/lib/stubs/libnvidia-ml.so /usr/lib/x86_64-linux-gnu/libnvidia-ml.so
내가 엔비디아 CUDA 8 이미지를 사용하고 있습니다 :
ENV LD_LIBRARY_PATH /usr/local/nvidia/lib:/usr/local/nvidia/lib64
ENV LIBRARY_PATH /usr/local/cuda/lib64/stubs:${LIBRARY_PATH}
ENV PATH /usr/local/nvidia/bin:/usr/local/cuda/bin:${PATH}
ENV OPENCL_HEADERS /usr/local/cuda/include
ENV LIBOPENCL /usr/local/cuda/lib64
ENV CUDA_TOOLKIT_ROOT_DIR /usr/local/cuda
ENV CUDA_NVCC_EXECUTABLE /usr/bin/nvcc
이 내가 다른 오류를 제거했던 '해킹'의 일부입니다 + 마지막 버전 인 nvidia docker, Docker 버전 17.03.1-ce.
Dockerfile 컴파일 프로세스와 컨테이너 런타임간에 차이가 없다고 생각했습니다.
해당 라이브러리는 CUDA의 일부가 아닙니다. 그것은 NVIDIA 드라이버와 함께 제공됩니다. – talonmies