|
| 1 | +ARG CUDA_VERSION |
| 2 | +ARG ROCKY_VERSION |
| 3 | +FROM nvidia/cuda:${CUDA_VERSION}-devel-rockylinux${ROCKY_VERSION} |
| 4 | +LABEL maintainer="AliceVision Team [email protected]" |
| 5 | + |
| 6 | +# use CUDA_VERSION to select the image version to use |
| 7 | +# see https://hub.docker.com/r/nvidia/cuda/ |
| 8 | +# |
| 9 | +# AV_VERSION=2.2.8.develop |
| 10 | +# CUDA_VERSION=11.0 |
| 11 | +# ROCKY_VERSION=20.04 |
| 12 | +# docker build \ |
| 13 | +# --build-arg CUDA_VERSION=${CUDA_VERSION} \ |
| 14 | +# --build-arg ROCKY_VERSION${ROCKY_VERSION} \ |
| 15 | +# --tag alicevision/alicevision-deps:${AV_VERSION}-rocky${ROCKY_VERSION}-cuda${CUDA_TAG} \ |
| 16 | +# -f Dockerfile_rocky_deps . |
| 17 | + |
| 18 | +# OS/Version (FILE): cat /etc/issue.net |
| 19 | +# Cuda version (ENV): $CUDA_VERSION |
| 20 | + |
| 21 | +RUN dnf install -y 'dnf-command(config-manager)' |
| 22 | +RUN dnf config-manager --set-enabled devel |
| 23 | +RUN dnf install -y epel-release |
| 24 | +# RUN dnf install -y gcc-toolset-13-gcc-c++ |
| 25 | +# RUN dnf remove -y gcc-g++ gcc |
| 26 | +# RUN update-alternatives --install /usr/bin/gcc gcc /opt/rh/gcc-toolset-13/root/usr/bin/gcc 60 |
| 27 | +# RUN update-alternatives --install /usr/bin/g++ g++ /opt/rh/gcc-toolset-13/root/usr/bin/g++ 60 |
| 28 | +# RUN update-alternatives --install /usr/bin/cpp cpp /opt/rh/gcc-toolset-13/root/usr/bin/cpp 60 |
| 29 | +RUN dnf install -y ca-certificates wget |
| 30 | +RUN dnf install -y cmake git unzip |
| 31 | +RUN dnf install -y python3-devel python3-pip |
| 32 | +RUN dnf install -y pcre2-devel |
| 33 | +RUN dnf install -y xerces-c-devel |
| 34 | +RUN dnf install -y bison |
| 35 | +RUN dnf install -y diffutils which file |
| 36 | +RUN dnf install -y yasm |
| 37 | +RUN dnf install -y gfortran libasan libubsan |
| 38 | +RUN dnf update -y |
| 39 | +# RUN scl enable gcc-toolset-13 bash |
| 40 | + |
| 41 | +RUN python3 -m pip install numpy |
| 42 | + |
| 43 | +ENV AV_DEV=/opt/AliceVision_git \ |
| 44 | + AV_BUILD=/tmp/AliceVision_build \ |
| 45 | + AV_INSTALL=/opt/AliceVision_install \ |
| 46 | + PATH="${PATH}:${AV_BUNDLE}" |
| 47 | + |
| 48 | +COPY dl/vlfeat_K80L3.SIFT.tree ${AV_INSTALL}/share/aliceVision/ |
| 49 | +RUN echo "export ALICEVISION_VOCTREE=${AV_INSTALL}/share/aliceVision/vlfeat_K80L3.SIFT.tree" > /etc/profile.d/alicevision.sh |
| 50 | + |
| 51 | +COPY dl/sphereDetection_Mask-RCNN.onnx ${AV_INSTALL}/share/aliceVision/ |
| 52 | +RUN echo "export ALICEVISION_SPHERE_DETECTION_MODEL=${AV_INSTALL}/share/aliceVision/sphereDetection_Mask-RCNN.onnx" > /etc/profile.d/alicevision.sh |
| 53 | + |
| 54 | +COPY dl/fcn_resnet50.onnx ${AV_INSTALL}/share/aliceVision/ |
| 55 | +RUN echo "export ALICEVISION_SEMANTIC_SEGMENTATION_MODEL=${AV_INSTALL}/share/aliceVision/fcn_resnet50.onnx" > /etc/profile.d/alicevision.sh |
| 56 | + |
| 57 | +COPY docker/check-cpu.sh ${AV_DEV}/docker/check-cpu.sh |
| 58 | +RUN export CPU_CORES=`${AV_DEV}/docker/check-cpu.sh` && echo "Build multithreading number of cores: ${CPU_CORES}" |
| 59 | + |
| 60 | +COPY CMakeLists.txt ${AV_DEV}/ |
| 61 | +COPY src/cmake/Dependencies.cmake ${AV_DEV}/src/cmake/ |
| 62 | + |
| 63 | +COPY dl/deps ${AV_BUILD}/external/download/ |
| 64 | + |
| 65 | +WORKDIR "${AV_BUILD}" |
| 66 | +RUN cmake "${AV_DEV}" \ |
| 67 | + -DCMAKE_BUILD_TYPE=Release \ |
| 68 | + -DALICEVISION_BUILD_DEPENDENCIES:BOOL=ON \ |
| 69 | + -DAV_BUILD_ZLIB:BOOL=ON \ |
| 70 | + -DAV_BUILD_ALICEVISION:BOOL=OFF \ |
| 71 | + -DAV_BUILD_CCTAG:BOOL=OFF \ |
| 72 | + -DCMAKE_INSTALL_PREFIX="${AV_INSTALL}" |
| 73 | + |
| 74 | +# Symlink lib64 to lib as qtOIIO expects to find OIIO in lib64 |
| 75 | +RUN mkdir -p "${AV_INSTALL}/lib" && \ |
| 76 | + ln -s lib "${AV_INSTALL}/lib64" |
| 77 | + |
| 78 | +RUN test -e /usr/local/cuda/lib64/libcublas.so || ln -s /usr/lib/x86_64-linux-gnu/libcublas.so /usr/local/cuda/lib64/libcublas.so |
| 79 | + |
| 80 | +# RUN make -j ${CPU_CORES} onnxruntime |
| 81 | +# RUN make -j ${CPU_CORES} turbojpeg |
| 82 | +# RUN make -j ${CPU_CORES} boost |
| 83 | +# RUN make -j ${CPU_CORES} openexr |
| 84 | +# RUN make -j ${CPU_CORES} tbb |
| 85 | +# RUN make -j ${CPU_CORES} assimp |
| 86 | +# RUN make -j ${CPU_CORES} geogram |
| 87 | +# RUN make -j ${CPU_CORES} eigen |
| 88 | +# RUN make -j ${CPU_CORES} opengv |
| 89 | +# RUN make -j ${CPU_CORES} lapack |
| 90 | +# RUN make -j ${CPU_CORES} suitesparse |
| 91 | +# RUN make -j ${CPU_CORES} ceres |
| 92 | +# RUN make -j ${CPU_CORES} tiff |
| 93 | +# RUN make -j ${CPU_CORES} png |
| 94 | +# RUN make -j ${CPU_CORES} libraw |
| 95 | +# RUN make -j ${CPU_CORES} openimageio |
| 96 | +# RUN make -j ${CPU_CORES} alembic |
| 97 | +# RUN make -j ${CPU_CORES} ffmpeg |
| 98 | +# RUN make -j ${CPU_CORES} opencv |
| 99 | +# RUN make -j ${CPU_CORES} expat |
| 100 | +# RUN make -j ${CPU_CORES} SWIG |
| 101 | +# RUN make -j ${CPU_CORES} E57Format |
| 102 | + |
| 103 | +# RUN make -j ${CPU_CORES} popsift |
| 104 | +# RUN make -j ${CPU_CORES} cctag |
| 105 | + |
| 106 | +RUN cmake --build . -j ${CPU_CORES} && \ |
| 107 | + mv "${AV_INSTALL}/bin" "${AV_INSTALL}/bin-deps" && \ |
| 108 | + rm -rf "${AV_BUILD}" |
0 commit comments