fix: dockerfile base
	
		
			
	
		
	
	
		
	
		
			Some checks failed
		
		
	
	
		
			
				
	
				Build Worker Base and Application Images / check-base-changes (push) Successful in 8s
				
			
		
			
				
	
				Build Worker Base and Application Images / build-base (push) Failing after 5m52s
				
			
		
			
				
	
				Build Worker Base and Application Images / build-docker (push) Has been skipped
				
			
		
			
				
	
				Build Worker Base and Application Images / deploy-stack (push) Has been skipped
				
			
		
		
	
	
				
					
				
			
		
			Some checks failed
		
		
	
	Build Worker Base and Application Images / check-base-changes (push) Successful in 8s
				
			Build Worker Base and Application Images / build-base (push) Failing after 5m52s
				
			Build Worker Base and Application Images / build-docker (push) Has been skipped
				
			Build Worker Base and Application Images / deploy-stack (push) Has been skipped
				
			This commit is contained in:
		
							parent
							
								
									a45f76884f
								
							
						
					
					
						commit
						ff56c1b666
					
				
					 1 changed files with 25 additions and 50 deletions
				
			
		| 
						 | 
				
			
			@ -47,7 +47,13 @@ RUN apt-get update && apt-get install -y \
 | 
			
		|||
    || echo "NVIDIA packages not available, continuing without them" && \
 | 
			
		||||
    rm -rf /var/lib/apt/lists/*
 | 
			
		||||
 | 
			
		||||
# Install NVIDIA Video Codec SDK headers
 | 
			
		||||
# Use pre-built FFmpeg with CUDA support using the build script
 | 
			
		||||
ENV FFMPEG_BUILD_SCRIPT_VERSION=1.43
 | 
			
		||||
# Ensure CUDA paths are available
 | 
			
		||||
ENV PATH="/usr/local/cuda/bin:${PATH}"
 | 
			
		||||
ENV LD_LIBRARY_PATH="/usr/local/cuda/lib64:${LD_LIBRARY_PATH}"
 | 
			
		||||
 | 
			
		||||
# Install NVIDIA Video Codec SDK headers first
 | 
			
		||||
RUN cd /tmp && \
 | 
			
		||||
    wget https://github.com/FFmpeg/nv-codec-headers/archive/refs/tags/n12.1.14.0.zip && \
 | 
			
		||||
    unzip n12.1.14.0.zip && \
 | 
			
		||||
| 
						 | 
				
			
			@ -55,60 +61,29 @@ RUN cd /tmp && \
 | 
			
		|||
    make install && \
 | 
			
		||||
    rm -rf /tmp/*
 | 
			
		||||
 | 
			
		||||
# Build FFmpeg from source with NVIDIA CUVID support
 | 
			
		||||
ENV FFMPEG_VERSION=6.0
 | 
			
		||||
# Ensure CUDA paths are available for FFmpeg compilation
 | 
			
		||||
ENV PATH="/usr/local/cuda/bin:${PATH}"
 | 
			
		||||
ENV LD_LIBRARY_PATH="/usr/local/cuda/lib64:${LD_LIBRARY_PATH}"
 | 
			
		||||
# Build FFmpeg using the well-maintained build script with CUDA support
 | 
			
		||||
RUN cd /tmp && \
 | 
			
		||||
    wget https://ffmpeg.org/releases/ffmpeg-${FFMPEG_VERSION}.tar.xz && \
 | 
			
		||||
    tar xf ffmpeg-${FFMPEG_VERSION}.tar.xz && \
 | 
			
		||||
    cd ffmpeg-${FFMPEG_VERSION} && \
 | 
			
		||||
    # Configure with explicit CUVID support (with fallback)
 | 
			
		||||
    (./configure \
 | 
			
		||||
        --enable-gpl \
 | 
			
		||||
        --enable-nonfree \
 | 
			
		||||
        --enable-shared \
 | 
			
		||||
        --enable-libx264 \
 | 
			
		||||
        --enable-libx265 \
 | 
			
		||||
        --enable-libvpx \
 | 
			
		||||
        --enable-libmp3lame \
 | 
			
		||||
        --enable-cuda-nvcc \
 | 
			
		||||
        --enable-cuda-llvm \
 | 
			
		||||
        --enable-cuvid \
 | 
			
		||||
        --enable-nvdec \
 | 
			
		||||
        --enable-nvenc \
 | 
			
		||||
        --enable-libnpp \
 | 
			
		||||
        --enable-decoder=h264_cuvid \
 | 
			
		||||
        --enable-decoder=hevc_cuvid \
 | 
			
		||||
        --enable-decoder=mjpeg_cuvid \
 | 
			
		||||
        --enable-decoder=mpeg1_cuvid \
 | 
			
		||||
        --enable-decoder=mpeg2_cuvid \
 | 
			
		||||
        --enable-decoder=mpeg4_cuvid \
 | 
			
		||||
        --enable-decoder=vc1_cuvid \
 | 
			
		||||
        --enable-encoder=h264_nvenc \
 | 
			
		||||
        --enable-encoder=hevc_nvenc \
 | 
			
		||||
        --extra-cflags="-I/usr/local/cuda/include" \
 | 
			
		||||
        --extra-ldflags="-L/usr/local/cuda/lib64" \
 | 
			
		||||
        --extra-libs="-lcuda -lcudart -lnvcuvid -lnvidia-encode" \
 | 
			
		||||
        --nvccflags="-gencode arch=compute_60,code=sm_60 -gencode arch=compute_70,code=sm_70 -gencode arch=compute_75,code=sm_75 -gencode arch=compute_80,code=sm_80 -gencode arch=compute_86,code=sm_86" \
 | 
			
		||||
    || echo "CUDA configuration failed, trying basic configuration..." && \
 | 
			
		||||
    ./configure \
 | 
			
		||||
        --enable-gpl \
 | 
			
		||||
        --enable-nonfree \
 | 
			
		||||
        --enable-shared \
 | 
			
		||||
        --enable-libx264 \
 | 
			
		||||
        --enable-libx265 \
 | 
			
		||||
        --enable-libvpx \
 | 
			
		||||
        --enable-libmp3lame) \
 | 
			
		||||
    && make -j$(nproc) && \
 | 
			
		||||
    make install && \
 | 
			
		||||
    echo "Building FFmpeg with CUDA support using build script..." && \
 | 
			
		||||
    curl -sL "https://raw.githubusercontent.com/markus-perl/ffmpeg-build-script/master/build-ffmpeg" -o build-ffmpeg && \
 | 
			
		||||
    chmod +x build-ffmpeg && \
 | 
			
		||||
    # Configure the build script for CUDA support
 | 
			
		||||
    SKIPINSTALL=yes \
 | 
			
		||||
    AUTOINSTALL=yes \
 | 
			
		||||
    ./build-ffmpeg \
 | 
			
		||||
        --build \
 | 
			
		||||
        --enable-gpl-and-non-free \
 | 
			
		||||
        --latest \
 | 
			
		||||
        --cuda \
 | 
			
		||||
    && \
 | 
			
		||||
    # Copy built binaries to system paths
 | 
			
		||||
    cp workspace/bin/* /usr/local/bin/ && \
 | 
			
		||||
    cp workspace/lib/* /usr/local/lib/ && \
 | 
			
		||||
    ldconfig && \
 | 
			
		||||
    # Verify CUVID decoders are available
 | 
			
		||||
    echo "=== Verifying FFmpeg CUVID Support ===" && \
 | 
			
		||||
    ffmpeg -hide_banner -decoders 2>/dev/null | grep cuvid && \
 | 
			
		||||
    (ffmpeg -hide_banner -decoders 2>/dev/null | grep cuvid || echo "No CUVID decoders found") && \
 | 
			
		||||
    echo "=== Verifying FFmpeg NVENC Support ===" && \
 | 
			
		||||
    ffmpeg -hide_banner -encoders 2>/dev/null | grep nvenc && \
 | 
			
		||||
    (ffmpeg -hide_banner -encoders 2>/dev/null | grep nvenc || echo "No NVENC encoders found") && \
 | 
			
		||||
    cd / && rm -rf /tmp/*
 | 
			
		||||
 | 
			
		||||
# Build OpenCV from source with custom FFmpeg and full CUDA support
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue