From c42fdd8546bd5d3d99f250691194d1f510adfcb6 Mon Sep 17 00:00:00 2001 From: Moritz Maxeiner <mm@ucw.sh> Date: Wed, 3 Jun 2020 20:42:08 +0200 Subject: [PATCH] [windows] Move shared packages into base, build FFmpeg with Nvidia hardware encoding capability in gpu image --- windows-1809/base/Dockerfile | 29 ++++++++++++++++++++++++++- windows-1809/cuda-devel/Dockerfile | 32 +++++++++--------------------- windows-1809/devel/Dockerfile | 32 +++++++++--------------------- 3 files changed, 46 insertions(+), 47 deletions(-) diff --git a/windows-1809/base/Dockerfile b/windows-1809/base/Dockerfile index 3f186a8..2c140f6 100644 --- a/windows-1809/base/Dockerfile +++ b/windows-1809/base/Dockerfile @@ -50,4 +50,31 @@ RUN $vcpkg_dir = 'C:/ProgramData/vcpkg'; \ cd $vcpkg_dir; \ git checkout d61d47c5cac2198bf0262d75742e8a4a38e573d6; \ ./scripts/bootstrap.ps1 -disableMetrics; \ - [Environment]::SetEnvironmentVariable('VCPKG_DIR', "\"$vcpkg_dir\"", [EnvironmentVariableTarget]::Machine); + $vcpkg_target_triplet = 'x64-windows-14.16'; \ + [Environment]::SetEnvironmentVariable('VCPKG_DIR', "\"$vcpkg_dir\"", [EnvironmentVariableTarget]::Machine); \ + [Environment]::SetEnvironmentVariable('VCPKG_TRIPLET', "\"$vcpkg_target_triplet\"", [EnvironmentVariableTarget]::Machine); \ + [Environment]::SetEnvironmentVariable('VCPKG_TARGET_TRIPLET', "\"$vcpkg_target_triplet\"", [EnvironmentVariableTarget]::Machine); \ + [Environment]::SetEnvironmentVariable('CMAKE_TOOLCHAIN_FILE', "\"$vcpkg_dir/scripts/buildsystems/vcpkg.cmake\"", [EnvironmentVariableTarget]::Machine); \ + [Environment]::SetEnvironmentVariable('VCPKG_INSTALL_DIR', "\"$vcpkg_dir/installed/$vcpkg_triplet\"", [EnvironmentVariableTarget]::Machine); +ADD powershell/30-Vcpkg-CMake.ps1 /Windows/System32/WindowsPowerShell/v1.0/profile.d/30-Vcpkg-CMake.ps1 + +RUN cd $env:VCPKG_DIR; \ + Must-Run ./vcpkg install --triplet "$env:VCPKG_TARGET_TRIPLET" \ + libepoxy \ + glm \ + cgal \ + "\"hdf5[cpp]\"" \ + pybind11 \ + boost-program-options \ + boost-property-tree \ + boost-circular-buffer \ + boost-timer \ + jsoncpp \ + websocketpp \ + freetype \ + harfbuzz \ + rpclib \ + eigen3; \ + Remove-Item -Force -Recurse ./downloads; \ + Remove-Item -Force -Recurse ./buildtrees; \ + Remove-Item -Force -Recurse ./packages; diff --git a/windows-1809/cuda-devel/Dockerfile b/windows-1809/cuda-devel/Dockerfile index 320b679..cc49b57 100644 --- a/windows-1809/cuda-devel/Dockerfile +++ b/windows-1809/cuda-devel/Dockerfile @@ -14,35 +14,21 @@ RUN [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tl Remove-Item -Force -Recurse "./cuda"; \ Remove-Item -Force C:/cudnn-10.1-windows10-x64-v7.6.1.34.zip +RUN cd $env:VCPKG_DIR; \ + ./vcpkg install --triplet "$env:VCPKG_TARGET_TRIPLET" \ + "\"ffmpeg[nvcodec,avresample,core]\"" \ + "\"opencv4[cuda,ffmpeg,ximea,opengl,contrib,ipp,dnn]\""; \ + Remove-Item -Force -Recurse ./downloads; \ + Remove-Item -Force -Recurse ./buildtrees; \ + Remove-Item -Force -Recurse ./packages; + COPY opengl32.dll C:/Windows/System32/opengl32.dll COPY glu32.dll C:/Windows/System32/glu32.dll COPY ddraw.dll C:/Windows/System32/ddraw.dll COPY nvcuda.dll C:/Windows/System32/nvcuda.dll RUN cd $env:VCPKG_DIR; \ - $vcpkg_triplet = 'x64-windows-14.16'; \ - Must-Run ./vcpkg install --triplet "$vcpkg_triplet" \ - libepoxy \ - glm \ - cgal \ - "\"hdf5[cpp]\"" \ - pybind11 \ - boost-program-options \ - boost-property-tree \ - boost-circular-buffer \ - boost-timer \ - jsoncpp \ - websocketpp \ - freetype \ - harfbuzz \ - rpclib \ - eigen3 \ - "\"opencv4[cuda,ffmpeg,ximea,opengl,contrib,ipp,dnn]\"" \ + ./vcpkg install --triplet "$env:VCPKG_TARGET_TRIPLET" \ "\"mxnet[cpp,opencv,cuda,cudnn]\""; \ - [Environment]::SetEnvironmentVariable('VCPKG_TRIPLET', "\"$vcpkg_triplet\"", [EnvironmentVariableTarget]::Machine); \ - [Environment]::SetEnvironmentVariable('CMAKE_TOOLCHAIN_FILE', "\"$env:VCPKG_DIR/scripts/buildsystems/vcpkg.cmake\"", [EnvironmentVariableTarget]::Machine); \ - [Environment]::SetEnvironmentVariable('VCPKG_TARGET_TRIPLET', "\"$vcpkg_triplet\"", [EnvironmentVariableTarget]::Machine); \ - [Environment]::SetEnvironmentVariable('VCPKG_INSTALL_DIR', "\"$env:VCPKG_DIR/installed/$vcpkg_triplet\"", [EnvironmentVariableTarget]::Machine); \ Remove-Item -Force -Recurse ./downloads; \ Remove-Item -Force -Recurse ./buildtrees; \ Remove-Item -Force -Recurse ./packages; -ADD powershell/30-Vcpkg-CMake.ps1 /Windows/System32/WindowsPowerShell/v1.0/profile.d/30-Vcpkg-CMake.ps1 diff --git a/windows-1809/devel/Dockerfile b/windows-1809/devel/Dockerfile index f3d55a2..de30942 100644 --- a/windows-1809/devel/Dockerfile +++ b/windows-1809/devel/Dockerfile @@ -4,34 +4,20 @@ FROM git.imp.fu-berlin.de:5000/bioroboticslab/robofish/docker:base-windows-1809 LABEL maintainer="Moritz Maxeiner <moritz.maxeiner@fu-berlin.de>" LABEL authors="Moritz Maxeiner <moritz.maxeiner@fu-berlin.de>" +RUN cd $env:VCPKG_DIR; \ + ./vcpkg install --triplet "$env:VCPKG_TARGET_TRIPLET" \ + "\"ffmpeg[avresample,core]\"" \ + "\"opencv4[ffmpeg,ximea,opengl,contrib,ipp,dnn]\""; \ + Remove-Item -Force -Recurse ./downloads; \ + Remove-Item -Force -Recurse ./buildtrees; \ + Remove-Item -Force -Recurse ./packages; + COPY opengl32.dll C:/Windows/System32/opengl32.dll COPY glu32.dll C:/Windows/System32/glu32.dll COPY ddraw.dll C:/Windows/System32/ddraw.dll RUN cd $env:VCPKG_DIR; \ - $vcpkg_triplet = 'x64-windows-14.16'; \ - Must-Run ./vcpkg install --triplet "$vcpkg_triplet" \ - libepoxy \ - glm \ - cgal \ - "\"hdf5[cpp]\"" \ - pybind11 \ - boost-program-options \ - boost-property-tree \ - boost-circular-buffer \ - boost-timer \ - jsoncpp \ - websocketpp \ - freetype \ - harfbuzz \ - rpclib \ - eigen3 \ - "\"opencv4[ffmpeg,ximea,opengl,contrib,ipp,dnn]\"" \ + ./vcpkg install --triplet "$env:VCPKG_TARGET_TRIPLET" \ "\"mxnet[cpp,opencv]\""; \ - [Environment]::SetEnvironmentVariable('VCPKG_TRIPLET', "\"$vcpkg_triplet\"", [EnvironmentVariableTarget]::Machine); \ - [Environment]::SetEnvironmentVariable('CMAKE_TOOLCHAIN_FILE', "\"$env:VCPKG_DIR/scripts/buildsystems/vcpkg.cmake\"", [EnvironmentVariableTarget]::Machine); \ - [Environment]::SetEnvironmentVariable('VCPKG_TARGET_TRIPLET', "\"$vcpkg_triplet\"", [EnvironmentVariableTarget]::Machine); \ - [Environment]::SetEnvironmentVariable('VCPKG_INSTALL_DIR', "\"$env:VCPKG_DIR/installed/$vcpkg_triplet\"", [EnvironmentVariableTarget]::Machine); \ Remove-Item -Force -Recurse ./downloads; \ Remove-Item -Force -Recurse ./buildtrees; \ Remove-Item -Force -Recurse ./packages; -ADD powershell/30-Vcpkg-CMake.ps1 /Windows/System32/WindowsPowerShell/v1.0/profile.d/30-Vcpkg-CMake.ps1 -- GitLab