Sign inSign up

haochenw/glomap

By haochenw

•Updated over 1 year ago

Glomap and colmap built on 25/01/21

Image
0

217

haochenw/glomap repository overview

Dockerfile

# NOTE: please put the correct cuda arch at line 76!!!!!!!!!

ARG UBUNTU_VERSION=22.04
ARG NVIDIA_CUDA_VERSION=12.3.1

FROM nvidia/cuda:${NVIDIA_CUDA_VERSION}-devel-ubuntu${UBUNTU_VERSION}

ENV QT_XCB_GL_INTEGRATION=xcb_egl

# Prevent stop building ubuntu at time zone selection.
ENV DEBIAN_FRONTEND=noninteractive

# Prepare and empty machine for building.
RUN apt-get update && \
    apt-get install -y --no-install-recommends --no-install-suggests \
    git \
    build-essential \
    cmake \
    ninja-build \
    wget \
    unzip \
    libboost-program-options-dev \
    libboost-filesystem-dev \
    libboost-graph-dev \
    libboost-system-dev \
    libeigen3-dev \
    libsuitesparse-dev \
    libceres-dev \
    libflann-dev \
    libfreeimage-dev \
    libmetis-dev \
    libgoogle-glog-dev \
    libgtest-dev \
    libsqlite3-dev \
    libglew-dev \
    qtbase5-dev \
    libqt5opengl5-dev \
    libcgal-dev \
    libcgal-qt5-dev \
    libgl1-mesa-dri \
    libunwind-dev \
    xvfb \
    clang-format-14 \
    python3 \
    python3-pip && \
    apt-get clean && \
    rm -rf /var/lib/apt/lists/*

# Install newer version of CMake
RUN apt-get install -y wget && \
    wget https://github.com/Kitware/CMake/releases/download/v3.30.1/cmake-3.30.1-linux-x86_64.sh && \
    chmod +x cmake-3.30.1-linux-x86_64.sh && \
    ./cmake-3.30.1-linux-x86_64.sh --skip-license --prefix=/usr/local

# Set up compiler environment
RUN apt-get update && \
    apt-get install -y \
    clang-15 \
    libomp-15-dev \
    gcc-10 \
    g++-10 \
    nvidia-cuda-toolkit \
    nvidia-cuda-toolkit-gcc && \
    apt-get clean && \
    rm -rf /var/lib/apt/lists/*
ENV CC=/usr/bin/gcc-10
ENV CXX=/usr/bin/g++-10
ENV CUDAHOSTCXX=/usr/bin/g++-10

# ARG CUDA_ARCHITECTURES=70,72,75,80,86
# https://arnon.dk/matching-sm-architectures-arch-and-gencode-for-various-nvidia-cards/
ARG CUDA_ARCHITECTURES=86

# Build and install COLMAP
# NOTE: set commit hash
ARG COLMAP_GIT_COMMIT=cf8f116197ff0e2ac869d04d3f41792ca18da449

RUN git clone https://github.com/colmap/colmap.git
RUN cd colmap && \
    git fetch https://github.com/colmap/colmap.git ${COLMAP_GIT_COMMIT} && \
    git checkout FETCH_HEAD && \
    mkdir build && \
    cd build && \
    cmake .. \
        -GNinja \
        -DCMAKE_CUDA_ARCHITECTURES=${CUDA_ARCHITECTURES} \
        -DCMAKE_INSTALL_PREFIX=/colmap_installed && \
    ninja install
RUN cp -r /colmap_installed/* /usr/local/

# Build and install GLOMAP
# NOTE: set commit hash
ARG GLOMAP_GIT_COMMIT=18a70eed0e36eae7c42e1c5ef0ae6a6f8cdc6943

RUN git clone https://github.com/colmap/glomap.git
RUN cd glomap && \
    git fetch https://github.com/colmap/glomap.git ${GLOMAP_GIT_COMMIT} && \
    git checkout FETCH_HEAD && \
    mkdir build && \
    cd build && \
    cmake .. \
        -GNinja \
        -DCMAKE_BUILD_TYPE=Release \
        -DCMAKE_INSTALL_PREFIX=/glomap_installed \
        -DCMAKE_CUDA_ARCHITECTURES=${CUDA_ARCHITECTURES} && \
    ninja && ninja install
RUN cp -r /glomap_installed/* /usr/local/

Tag summary

Content type

Image

Digest

sha256:e9488a9bc…

Size

6.7 GB

Last updated

over 1 year ago

docker pull haochenw/glomap:250121