Spaces:
Build error
Build error
| # --- `colmap` Builder Stage --- | |
| FROM nvidia/cuda:11.7.1-devel-ubuntu20.04 AS colmap_builder | |
| ARG COLMAP_GIT_COMMIT=main | |
| ARG CUDA_ARCHITECTURES=native | |
| ENV QT_XCB_GL_INTEGRATION=xcb_egl | |
| WORKDIR /workdir | |
| # Prepare and empty machine for building. | |
| RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y \ | |
| git \ | |
| cmake \ | |
| ninja-build \ | |
| build-essential \ | |
| libboost-program-options-dev \ | |
| libboost-filesystem-dev \ | |
| libboost-graph-dev \ | |
| libboost-system-dev \ | |
| libeigen3-dev \ | |
| libflann-dev \ | |
| libfreeimage-dev \ | |
| libmetis-dev \ | |
| libgoogle-glog-dev \ | |
| libgtest-dev \ | |
| libsqlite3-dev \ | |
| libglew-dev \ | |
| qtbase5-dev \ | |
| libqt5opengl5-dev \ | |
| libcgal-dev \ | |
| libceres-dev \ | |
| && rm -rf /var/lib/apt/lists/* | |
| # Build and install COLMAP. | |
| COPY deps/colmap /colmap | |
| RUN cd /colmap && \ | |
| mkdir build && \ | |
| cd build && \ | |
| cmake .. -GNinja -DCMAKE_CUDA_ARCHITECTURES=${CUDA_ARCHITECTURES} && \ | |
| ninja && \ | |
| ninja install && \ | |
| cd .. && rm -rf colmap | |
| # # --- `gaussian-splatting-cuda` Builder Stage --- | |
| FROM nvidia/cuda:11.7.1-devel-ubuntu20.04 AS gs_builder | |
| WORKDIR /workdir | |
| # Install dependencies | |
| # we could pin them to specific versions to be extra sure | |
| RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y \ | |
| git \ | |
| python3-dev \ | |
| libtbb-dev \ | |
| libeigen3-dev \ | |
| unzip \ | |
| g++ \ | |
| libssl-dev \ | |
| build-essential \ | |
| checkinstall \ | |
| wget \ | |
| cmake \ | |
| protobuf-compiler \ | |
| && rm -rf /var/lib/apt/lists/* | |
| # Install cmake 3.25 | |
| # RUN apt-get update && apt-get -y install | |
| RUN wget https://github.com/Kitware/CMake/releases/download/v3.25.0/cmake-3.25.0.tar.gz \ | |
| && tar -zvxf cmake-3.25.0.tar.gz \ | |
| && cd cmake-3.25.0 \ | |
| && ./bootstrap \ | |
| && make -j8 \ | |
| && checkinstall --pkgname=cmake --pkgversion="3.25-custom" --default | |
| # Copy necessary files | |
| COPY deps/gaussian-splatting-cuda/cuda_rasterizer ./cuda_rasterizer | |
| COPY deps/gaussian-splatting-cuda/external ./external | |
| COPY deps/gaussian-splatting-cuda/includes ./includes | |
| COPY deps/gaussian-splatting-cuda/parameter ./parameter | |
| COPY deps/gaussian-splatting-cuda/src ./src | |
| COPY deps/gaussian-splatting-cuda/CMakeLists.txt ./CMakeLists.txt | |
| # Download and extract libtorch | |
| RUN wget https://download.pytorch.org/libtorch/cu118/libtorch-cxx11-abi-shared-with-deps-2.0.1%2Bcu118.zip \ | |
| && unzip -o libtorch-cxx11-abi-shared-with-deps-2.0.1+cu118.zip -d external/ \ | |
| && rm libtorch-cxx11-abi-shared-with-deps-2.0.1+cu118.zip | |
| # Build (on CPU, this will add compute_35 as build target, which we do not want) | |
| ENV PATH /usr/local/cuda/bin:$PATH | |
| ENV LD_LIBRARY_PATH /usr/local/cuda/lib64:$LD_LIBRARY_PATH | |
| RUN cmake -B build -D CMAKE_BUILD_TYPE=Release -D CUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda/ -D CUDA_VERSION=11.7 \ | |
| && cmake --build build -- -j8 | |
| # --- Runner Stage --- | |
| FROM nvidia/cuda:11.7.1-devel-ubuntu20.04 AS runner | |
| WORKDIR /app | |
| RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y \ | |
| libboost-program-options-dev \ | |
| libboost-filesystem-dev \ | |
| libboost-graph-dev \ | |
| libboost-system-dev \ | |
| libeigen3-dev \ | |
| libflann-dev \ | |
| libfreeimage-dev \ | |
| libmetis-dev \ | |
| libgoogle-glog-dev \ | |
| libgtest-dev \ | |
| libsqlite3-dev \ | |
| libglew-dev \ | |
| qtbase5-dev \ | |
| libqt5opengl5-dev \ | |
| libcgal-dev \ | |
| libceres-dev \ | |
| imagemagick \ | |
| ffmpeg \ | |
| python3-pip \ | |
| && rm -rf /var/lib/apt/lists/* | |
| # Copy built artifact from colmap_builder stage | |
| COPY --from=colmap_builder /usr/local/bin/colmap /usr/local/bin/colmap | |
| # Copy built artifact from builder stage | |
| COPY --from=gs_builder /workdir/build/gaussian_splatting_cuda /usr/local/bin/gaussian_splatting_cuda | |
| COPY --from=gs_builder /workdir/external/libtorch /usr/local/libtorch | |
| COPY --from=gs_builder /workdir/parameter /usr/local/bin/parameter | |
| # Setup environment | |
| ENV PATH /usr/local/libtorch/bin:/usr/local/cuda/bin:$PATH | |
| ENV LD_LIBRARY_PATH /usr/local/libtorch/lib:/usr/local/cuda/lib64:$LD_LIBRARY_PATH | |
| ENV LC_ALL C | |
| ENV LANG C | |
| # Install python dependencies | |
| COPY requirements.txt /app/requirements.txt | |
| RUN python3 -m pip install --upgrade pip | |
| RUN python3 -m pip install -r /app/requirements.txt | |
| COPY services /app/services | |
| COPY server.py /app/server.py | |
| # Fix bug | |
| RUN mkdir /parameter && cp /usr/local/bin/parameter/optimization_params.json /parameter/optimization_params.json | |
| EXPOSE 7860 | |
| CMD [ "python3", "-u", "/app/server.py" ] |