MIT-SPARK / Kimera-VIO

Visual Inertial Odometry with SLAM capabilities and 3D Mesh generation.
BSD 2-Clause "Simplified" License
1.53k stars 416 forks source link

Failing c++ compilation with custom Dockerfile #199

Closed PilchardFriendly closed 1 year ago

PilchardFriendly commented 1 year ago

Description:

In an attempt to make working with the Docker build a bit more interactive, I've converted the Dockerfile to a multistage build, factoring dependencies into build layers. The docker file is attached.

I'm currently on a MacBook M1 Pro

My first thoughts are this is a resource usage problem, rather than a straight compilation issue - but I'm often wrong.

Command:

docker build --rm -t kimera_vio -f ./scripts/docker/Dockerfile .

Console output:


[+] Building 786.0s (63/67)
 => [internal] load build definition from Dockerfile                                                                0.0s
 => => transferring dockerfile: 37B                                                                                 0.0s
 => [internal] load .dockerignore                                                                                   0.0s
 => => transferring context: 2B                                                                                     0.0s
 => [internal] load metadata for docker.io/library/ubuntu:18.04                                                     2.8s
 => https://api.github.com/repos/MIT-SPARK/Kimera-RPGO/git/refs/heads/master                                        0.0s
 => https://api.github.com/repos/borglab/gtsam/git/refs/heads/master                                                0.6s
 => https://api.github.com/repos/ToniRV/evo-1/git/refs/heads/master                                                 0.6s
 => CACHED https://api.github.com/repos/ToniRV/Kimera-VIO-Evaluation/git/refs/heads/master                          0.0s
 => [base 1/3] FROM docker.io/library/ubuntu:18.04@sha256:ca70a834041dd1bf16cc38dfcd24f0888ec4fa431e09f3344f354cf8  0.0s
 => [internal] load build context                                                                                   0.1s
 => => transferring context: 52.99kB                                                                                0.1s
 => CACHED [base 2/3] WORKDIR /root                                                                                 0.0s
 => CACHED [base 3/3] RUN apt-get update && apt-get install -y --no-install-recommends apt-utils                    0.0s
 => CACHED [euroc 1/4] RUN apt-get update && apt-get install -y wget                                                0.0s
 => CANCELED [euroc 2/4] RUN wget http://robotics.ethz.ch/~asl-datasets/ijrr_euroc_mav_dataset/vicon_room1/V1_01  783.0s
 => CACHED [dev 1/2] RUN apt-get update && apt-get install -y git build-essential cmake unzip pkg-config            0.0s
 => CACHED [dev 2/2] RUN apt-get update && apt-get install -y xvfb                                                  0.0s
 => CACHED [dev-boost 1/1] RUN apt-get update && apt-get install -y libboost-all-dev                                0.0s
 => CACHED [gtsam-code 1/3] ADD https://api.github.com/repos/borglab/gtsam/git/refs/heads/master version.json       0.0s
 => CACHED [gtsam-code 2/3] RUN git clone https://github.com/borglab/gtsam.git                                      0.0s
 => CACHED [gtsam-code 3/3] RUN cd gtsam &&     git fetch &&     git reset --hard e5866799dff48239573cdd8496418086  0.0s
 => CACHED [gtsam 1/1] RUN cd gtsam &&     mkdir build &&     cd build &&     cmake -DCMAKE_INSTALL_PREFIX=/usr/lo  0.0s
 => CACHED [pgo 1/4] COPY --from=gtsam /usr/local /usr/local                                                        0.0s
 => [pgo 2/4] ADD https://api.github.com/repos/MIT-SPARK/Kimera-RPGO/git/refs/heads/master version.json             0.0s
 => [pgo 3/4] RUN git clone https://github.com/MIT-SPARK/Kimera-RPGO.git                                            2.9s
 => [pgo 4/4] RUN cd Kimera-RPGO &&       mkdir build &&       cd build &&       cmake .. &&       make -j$(nproc  27.1s
 => CACHED [python3 1/4] RUN apt-get update &&     apt-get install software-properties-common -y                    0.0s
 => CACHED [python3 2/4] RUN apt-get update &&     add-apt-repository ppa:deadsnakes/ppa                            0.0s
 => CACHED [python3 3/4] RUN apt-get update &&     apt-get install -y python3.9 python3.9-dev python-pip python3-p  0.0s
 => CACHED [python3 4/4] RUN python3.9 -m pip install --upgrade pip wheel setuptools requests                       0.0s
 => CACHED [python3-ui 1/2] RUN apt-get update &&     apt-get install -y python-tk python3-tk qt5-default qtbase5-  0.0s
 => CACHED [python3-ui 2/2] RUN qmake --version                                                                     0.0s
 => CACHED [evo1 1/3] ADD https://api.github.com/repos/ToniRV/evo-1/git/refs/heads/master version.json              0.0s
 => CACHED [evo1 2/3] RUN git clone https://github.com/ToniRV/evo-1.git                                             0.0s
 => CACHED [evo1 3/3] RUN cd evo-1 && python3.9 $(which pip3) install .                                             0.0s
 => CACHED [kimera-build  1/18] COPY --from=gtsam /usr/local /usr/local                                             0.0s
 => CACHED [kimera-build  2/18] COPY --from=gtsam-code /root/gtsam /root/gtsam                                      0.0s
 => CACHED [opencv 1/6] RUN apt-get update && apt-get install -y       libjpeg-dev libpng-dev libtiff-dev       li  0.0s
 => CACHED [opencv 2/6] RUN git clone https://github.com/opencv/opencv.git                                          0.0s
 => CACHED [opencv 3/6] RUN cd opencv &&       git checkout tags/3.3.1 &&       mkdir build                         0.0s
 => CACHED [opencv 4/6] RUN git clone https://github.com/opencv/opencv_contrib.git                                  0.0s
 => CACHED [opencv 5/6] RUN cd opencv_contrib &&       git checkout tags/3.3.1                                      0.0s
 => CACHED [opencv 6/6] RUN cd opencv/build &&       cmake -DCMAKE_BUILD_TYPE=Release       -DCMAKE_INSTALL_PREFIX  0.0s
 => CACHED [kimera-build  3/18] COPY --from=opencv /usr/local /usr/local                                            0.0s
 => CACHED [opengv 1/4] COPY --from=gtsam-code /root/gtsam /root/gtsam                                              0.0s
 => CACHED [opengv 2/4] RUN git clone https://github.com/laurentkneip/opengv                                        0.0s
 => CACHED [opengv 3/4] RUN cd opengv &&       mkdir build                                                          0.0s
 => CACHED [opengv 4/4] RUN cd opengv/build &&       cmake -DCMAKE_BUILD_TYPE=Release       -DCMAKE_INSTALL_PREFIX  0.0s
 => CACHED [kimera-build  4/18] COPY --from=opengv /usr/local /usr/local                                            0.0s
 => CACHED [dbcow2-code 1/1] RUN git clone https://github.com/dorian3d/DBoW2.git                                    0.0s
 => CACHED [dbcow2 1/1] RUN cd DBoW2 &&       mkdir build &&       cd build &&       cmake .. &&       make -j$(np  0.0s
 => CACHED [kimera-build  5/18] COPY --from=dbcow2 /usr/local /usr/local                                            0.0s
 => [kimera-build  6/18] COPY --from=pgo /usr/local /usr/local                                                      0.2s
 => [kimera-build  7/18] RUN python3.9 $(which pip3) install ipython prompt_toolkit                                 4.3s
 => [kimera-build  8/18] ADD https://api.github.com/repos/ToniRV/Kimera-VIO-Evaluation/git/refs/heads/master versi  0.0s
 => [kimera-build  9/18] RUN git clone https://github.com/ToniRV/Kimera-VIO-Evaluation.git                         13.4s
 => [kimera-build 10/18] RUN cd Kimera-VIO-Evaluation && python3.9 $(which pip3) install -e .                      20.7s
 => [kimera-build 11/18] RUN mkdir /root/.ssh/                                                                      0.2s
 => [kimera-build 12/18] RUN echo "${SSH_PRIVATE_KEY}" > /root/.ssh/id_rsa                                          0.3s
 => [kimera-build 13/18] RUN chmod 600 ~/.ssh/id_rsa                                                                0.1s
 => [kimera-build 14/18] RUN touch /root/.ssh/known_hosts                                                           0.2s
 => [kimera-build 15/18] RUN ssh-keyscan -t rsa github.com >> /root/.ssh/known_hosts                                1.4s
 => [kimera-build 16/18] RUN apt-get update && apt-get install -y libgflags2.2 libgflags-dev libgoogle-glog0v5 li  54.6s
 => [kimera-build 17/18] COPY . Kimera-VIO/                                                                         1.0s
 => ERROR [kimera-build 18/18] RUN cd Kimera-VIO     && mkdir build     && cd build     && cmake .. -DCMAKE_CXX_  653.6s
------
 > [kimera-build 18/18] RUN cd Kimera-VIO     && mkdir build     && cd build     && cmake .. -DCMAKE_CXX_FLAGS='    -Wno-comment     -Wno-maybe-uninitialized     -Wno-parentheses     -Wno-pragma-once-outside-header     -Wno-reorder     -Wno-return-type     -Wno-sign-compare     -Wno-unused-but-set-variable     -Wno-unused-function     -Wno-unused-parameter     -Wno-unused-value     -Wno-unused-variable'     && make -j$(nproc):
#61 0.292 -- The CXX compiler identification is GNU 7.5.0
#61 0.378 -- The C compiler identification is GNU 7.5.0
#61 0.381 -- Check for working CXX compiler: /usr/bin/c++
#61 0.459 -- Check for working CXX compiler: /usr/bin/c++ -- works
#61 0.460 -- Detecting CXX compiler ABI info
#61 0.537 -- Detecting CXX compiler ABI info - done
#61 0.540 -- Detecting CXX compile features
#61 0.902 -- Detecting CXX compile features - done
#61 0.905 -- Check for working C compiler: /usr/bin/cc
#61 0.974 -- Check for working C compiler: /usr/bin/cc -- works
#61 0.975 -- Detecting C compiler ABI info
#61 1.045 -- Detecting C compiler ABI info - done
#61 1.048 -- Detecting C compile features
#61 1.244 -- Detecting C compile features - done
#61 1.244 -- ==============================================================
#61 1.244 -- ====================  Dependencies ===========================
#61 1.286 -- Looking for pthread.h
#61 1.359 -- Looking for pthread.h - found
#61 1.360 -- Looking for pthread_create
#61 1.428 -- Looking for pthread_create - not found
#61 1.428 -- Looking for pthread_create in pthreads
#61 1.491 -- Looking for pthread_create in pthreads - not found
#61 1.491 -- Looking for pthread_create in pthread
#61 1.555 -- Looking for pthread_create in pthread - found
#61 1.556 -- Found Threads: TRUE
#61 1.569 -- Boost version: 1.65.1
#61 1.569 -- Found the following Boost libraries:
#61 1.569 --   filesystem
#61 1.569 --   serialization
#61 1.569 --   regex
#61 1.569 --   timer
#61 1.569 --   date_time
#61 1.569 --   thread
#61 1.569 --   system
#61 1.569 --   chrono
#61 1.569 --   atomic
#61 1.572 -- Found installed version of gflags: /usr/lib/aarch64-linux-gnu/cmake/gflags
#61 1.572 -- Detected gflags version: 2.2.1
#61 1.572 -- Found Gflags: /usr/include
#61 1.577 -- Failed to find installed glog CMake configuration, searching for glog build directories exported with CMake.
#61 1.580 -- Failed to find an installed/exported CMake configuration for glog, will perform search for installed glog components.
#61 1.582 -- Found Glog: /usr/include (Required is at least version "0.3.5")
#61 1.583 -- GTSAM include directory:  /usr/local/lib/cmake/GTSAM/../../../include
#61 1.595 -- Found OpenCV: /usr/local (found version "3.3.1")
#61 1.599 -- GTSAM include directory:  /usr/local/lib/cmake/GTSAM/../../../include
#61 1.707 -- Downloading vocabulary file from dropbox.
#61 5.465 -- [download 100% complete]
#61 7.790 -- [download 0% complete]
#61 9.660 -- [download 1% complete]
#61 11.67 -- [download 2% complete]
#61 13.06 -- [download 3% complete]
#61 14.13 -- [download 4% complete]
#61 14.95 -- [download 5% complete]
#61 15.39 -- [download 6% complete]
#61 16.19 -- [download 7% complete]
#61 17.25 -- [download 8% complete]
#61 18.11 -- [download 9% complete]
#61 18.43 -- [download 10% complete]
#61 19.17 -- [download 11% complete]
#61 19.87 -- [download 12% complete]
#61 21.42 -- [download 13% complete]
#61 21.97 -- [download 14% complete]
#61 22.53 -- [download 15% complete]
#61 23.33 -- [download 16% complete]
#61 23.95 -- [download 17% complete]
#61 24.58 -- [download 18% complete]
#61 25.00 -- [download 19% complete]
#61 25.38 -- [download 20% complete]
#61 26.04 -- [download 21% complete]
#61 26.26 -- [download 22% complete]
#61 27.07 -- [download 23% complete]
#61 27.20 -- [download 24% complete]
#61 27.71 -- [download 25% complete]
#61 28.16 -- [download 26% complete]
#61 28.55 -- [download 27% complete]
#61 29.20 -- [download 28% complete]
#61 29.51 -- [download 29% complete]
#61 30.25 -- [download 30% complete]
#61 30.35 -- [download 31% complete]
#61 30.68 -- [download 32% complete]
#61 31.28 -- [download 33% complete]
#61 31.62 -- [download 34% complete]
#61 32.66 -- [download 35% complete]
#61 33.39 -- [download 36% complete]
#61 33.54 -- [download 37% complete]
#61 34.72 -- [download 38% complete]
#61 35.47 -- [download 39% complete]
#61 35.58 -- [download 40% complete]
#61 35.93 -- [download 41% complete]
#61 36.55 -- [download 42% complete]
#61 37.21 -- [download 43% complete]
#61 37.68 -- [download 44% complete]
#61 37.99 -- [download 45% complete]
#61 38.64 -- [download 46% complete]
#61 38.78 -- [download 47% complete]
#61 39.30 -- [download 48% complete]
#61 39.70 -- [download 49% complete]
#61 40.34 -- [download 50% complete]
#61 40.72 -- [download 51% complete]
#61 41.10 -- [download 52% complete]
#61 42.48 -- [download 53% complete]
#61 42.93 -- [download 54% complete]
#61 43.16 -- [download 55% complete]
#61 43.99 -- [download 56% complete]
#61 44.89 -- [download 57% complete]
#61 45.02 -- [download 58% complete]
#61 45.24 -- [download 59% complete]
#61 46.07 -- [download 60% complete]
#61 46.12 -- [download 61% complete]
#61 46.31 -- [download 62% complete]
#61 47.15 -- [download 63% complete]
#61 47.19 -- [download 64% complete]
#61 47.64 -- [download 65% complete]
#61 48.71 -- [download 66% complete]
#61 48.76 -- [download 67% complete]
#61 49.21 -- [download 68% complete]
#61 49.44 -- [download 69% complete]
#61 51.32 -- [download 70% complete]
#61 51.37 -- [download 71% complete]
#61 51.64 -- [download 72% complete]
#61 52.72 -- [download 73% complete]
#61 52.75 -- [download 74% complete]
#61 53.08 -- [download 75% complete]
#61 53.93 -- [download 76% complete]
#61 53.98 -- [download 77% complete]
#61 54.50 -- [download 78% complete]
#61 55.38 -- [download 79% complete]
#61 56.05 -- [download 80% complete]
#61 56.08 -- [download 81% complete]
#61 56.90 -- [download 82% complete]
#61 56.95 -- [download 83% complete]
#61 57.88 -- [download 84% complete]
#61 57.93 -- [download 85% complete]
#61 58.13 -- [download 86% complete]
#61 58.53 -- [download 87% complete]
#61 59.38 -- [download 88% complete]
#61 59.44 -- [download 89% complete]
#61 60.55 -- [download 90% complete]
#61 60.77 -- [download 91% complete]
#61 61.30 -- [download 92% complete]
#61 61.71 -- Unzipping vocabulary file.
#61 62.64 CMake Error: Problem with archive_read_next_header():
#61 62.64 CMake Error: Problem extracting tar: /root/Kimera-VIO/vocabulary/ORBvoc.zip
#61 62.64 -- Moving vocabulary file.
#61 63.28 -- Pangolin not found.
#61 63.54 Cloning into 'googletest-src'...
#61 68.12 Note: checking out 'v1.10.x'.
#61 68.12
#61 68.12 You are in 'detached HEAD' state. You can look around, make experimental
#61 68.12 changes and commit them, and you can discard any commits you make in this
#61 68.12 state without impacting any branches by performing another checkout.
#61 68.12
#61 68.12 If you want to create a new branch to retain commits you create, you may
#61 68.12 do so (now or later) by using -b with the checkout command again. Example:
#61 68.12
#61 68.12   git checkout -b <new-branch-name>
#61 68.12
#61 68.12 HEAD is now at 703bd9ca Googletest export
#61 69.22 -- Found PythonInterp: /usr/bin/python (found version "2.7.17")
#61 69.24 -- ===============================================================
#61 69.24 -- ================  Configuration Options  ======================
#61 69.24 -- CMAKE_CXX_COMPILER_ID type                : GNU
#61 69.24 -- CMAKE_CXX_COMPILER_VERSION                : 7.5.0
#61 69.24 -- Build flags
#61 69.24 --   Build type                              : Release
#61 69.24 --   C compilation flags (Release)           :  -O3 -DNDEBUG
#61 69.24 --   C++ compilation flags (Release)         :     -Wno-comment     -Wno-maybe-uninitialized     -Wno-parentheses     -Wno-pragma-once-outside-header     -Wno-reorder     -Wno-return-type     -Wno-sign-compare     -Wno-unused-but-set-variable     -Wno-unused-function     -Wno-unused-parameter     -Wno-unused-value     -Wno-unused-variable -O3 -DNDEBUG
#61 69.25 -- Configuring done
#61 69.34 -- Generating done
#61 69.35 -- Build files have been written to: /root/Kimera-VIO/build
#61 69.40 Scanning dependencies of target gtest
#61 69.41 [  1%] Building CXX object external/googletest-build/googletest/CMakeFiles/gtest.dir/src/gtest-all.cc.o
#61 70.11 Scanning dependencies of target kimera_vio
#61 70.23 [  2%] Building CXX object CMakeFiles/kimera_vio.dir/src/dataprovider/DataProviderInterface-definitions.cpp.o
#61 70.23 [  3%] Building CXX object CMakeFiles/kimera_vio.dir/src/dataprovider/DataProviderInterface.cpp.o
#61 70.23 [  4%] Building CXX object CMakeFiles/kimera_vio.dir/src/dataprovider/DataProviderModule.cpp.o
#61 70.24 [  4%] Building CXX object CMakeFiles/kimera_vio.dir/src/dataprovider/MonoDataProviderModule.cpp.o
#61 74.76 [  5%] Linking CXX static library ../../../lib/libgtest.a
#61 74.82 [  5%] Built target gtest
#61 74.83 [  6%] Building CXX object CMakeFiles/kimera_vio.dir/src/dataprovider/RgbdDataProviderModule.cpp.o
#61 75.08 [  7%] Building CXX object CMakeFiles/kimera_vio.dir/src/dataprovider/StereoDataProviderModule.cpp.o
#61 143.7 [  8%] Building CXX object CMakeFiles/kimera_vio.dir/src/dataprovider/EurocDataProvider.cpp.o
#61 145.2 [  8%] Building CXX object CMakeFiles/kimera_vio.dir/src/dataprovider/KittiDataProvider.cpp.o
#61 146.7 [  9%] Building CXX object CMakeFiles/kimera_vio.dir/src/playground/EurocPlayground.cpp.o
#61 150.4 [ 10%] Building CXX object CMakeFiles/kimera_vio.dir/src/frontend/Camera.cpp.o
#61 150.4 [ 11%] Building CXX object CMakeFiles/kimera_vio.dir/src/frontend/StereoCamera.cpp.o
#61 156.6 [ 11%] Building CXX object CMakeFiles/kimera_vio.dir/src/frontend/StereoMatcher.cpp.o
#61 157.0 [ 12%] Building CXX object CMakeFiles/kimera_vio.dir/src/frontend/UndistorterRectifier.cpp.o
#61 162.1 [ 13%] Building CXX object CMakeFiles/kimera_vio.dir/src/frontend/CameraParams.cpp.o
#61 162.7 [ 14%] Building CXX object CMakeFiles/kimera_vio.dir/src/frontend/StereoFrame.cpp.o
#61 168.7 [ 14%] Building CXX object CMakeFiles/kimera_vio.dir/src/frontend/StereoMatchingParams.cpp.o
#61 170.3 [ 15%] Building CXX object CMakeFiles/kimera_vio.dir/src/frontend/StereoImuSyncPacket.cpp.o
#61 174.6 [ 16%] Building CXX object CMakeFiles/kimera_vio.dir/src/frontend/StereoVisionImuFrontend.cpp.o
#61 181.9 [ 17%] Building CXX object CMakeFiles/kimera_vio.dir/src/frontend/MonoImuSyncPacket.cpp.o
#61 184.3 [ 17%] Building CXX object CMakeFiles/kimera_vio.dir/src/frontend/MonoVisionImuFrontend.cpp.o
#61 188.4 [ 18%] Building CXX object CMakeFiles/kimera_vio.dir/src/frontend/VisionImuFrontend.cpp.o
#61 235.1 [ 19%] Building CXX object CMakeFiles/kimera_vio.dir/src/frontend/VisionImuFrontendModule.cpp.o
#61 255.4 [ 19%] Building CXX object CMakeFiles/kimera_vio.dir/src/frontend/VisionImuFrontendParams.cpp.o
#61 257.1 [ 20%] Building CXX object CMakeFiles/kimera_vio.dir/src/frontend/Tracker.cpp.o
#61 265.6 [ 21%] Building CXX object CMakeFiles/kimera_vio.dir/src/frontend/feature-detector/FeatureDetectorParams.cpp.o
#61 265.6 [ 22%] Building CXX object CMakeFiles/kimera_vio.dir/src/frontend/feature-detector/FeatureDetector.cpp.o
#61 265.7 [ 22%] Building CXX object CMakeFiles/kimera_vio.dir/src/frontend/feature-detector/NonMaximumSuppression.cpp.o
#61 269.1 [ 23%] Building CXX object CMakeFiles/kimera_vio.dir/src/frontend/feature-detector/anms/anms.cpp.o
#61 271.1 [ 24%] Building CXX object CMakeFiles/kimera_vio.dir/src/frontend/rgbd/RgbdFrame.cpp.o
#61 271.4 [ 25%] Building CXX object CMakeFiles/kimera_vio.dir/src/frontend/rgbd/RgbdImuSyncPacket.cpp.o
#61 272.1 [ 25%] Building CXX object CMakeFiles/kimera_vio.dir/src/frontend/optical-flow/OpticalFlowPredictor.cpp.o
#61 275.9 [ 26%] Building CXX object CMakeFiles/kimera_vio.dir/src/backend/VioBackendModule.cpp.o
#61 276.2 [ 27%] Building CXX object CMakeFiles/kimera_vio.dir/src/backend/VioBackend.cpp.o
#61 287.9 [ 28%] Building CXX object CMakeFiles/kimera_vio.dir/src/backend/VioBackendParams.cpp.o
#61 308.3 [ 28%] Building CXX object CMakeFiles/kimera_vio.dir/src/backend/RegularVioBackend.cpp.o
#61 326.4 [ 29%] Building CXX object CMakeFiles/kimera_vio.dir/src/backend/RegularVioBackendParams.cpp.o
#61 336.7 [ 30%] Building CXX object CMakeFiles/kimera_vio.dir/src/factors/ParallelPlaneRegularFactor.cpp.o
#61 347.5 [ 31%] Building CXX object CMakeFiles/kimera_vio.dir/src/factors/PointPlaneFactor.cpp.o
#61 359.0 [ 31%] Building CXX object CMakeFiles/kimera_vio.dir/src/mesh/Mesh.cpp.o
#61 362.6 [ 32%] Building CXX object CMakeFiles/kimera_vio.dir/src/mesh/Mesher.cpp.o
#61 370.0 [ 34%] Building CXX object CMakeFiles/kimera_vio.dir/src/mesh/MesherModule.cpp.o
#61 402.0 [ 35%] Building CXX object CMakeFiles/kimera_vio.dir/src/mesh/MesherFactory.cpp.o
#61 405.8 [ 35%] Building CXX object CMakeFiles/kimera_vio.dir/src/mesh/MeshOptimization.cpp.o
#61 435.7 [ 36%] Building CXX object CMakeFiles/kimera_vio.dir/src/initial/InitializationFromImu.cpp.o
#61 459.5 [ 37%] Building CXX object CMakeFiles/kimera_vio.dir/src/initial/InitializationBackend.cpp.o
#61 461.5 [ 38%] Building CXX object CMakeFiles/kimera_vio.dir/src/initial/OnlineGravityAlignment.cpp.o
#61 499.7 [ 38%] Building CXX object CMakeFiles/kimera_vio.dir/src/utils/ThreadsafeImuBuffer.cpp.o
#61 503.6 [ 39%] Building CXX object CMakeFiles/kimera_vio.dir/src/utils/Statistics.cpp.o
#61 505.2 [ 40%] Building CXX object CMakeFiles/kimera_vio.dir/src/utils/Histogram.cpp.o
#61 507.4 [ 40%] Building CXX object CMakeFiles/kimera_vio.dir/src/utils/UtilsGeometry.cpp.o
#61 507.5 [ 41%] Building CXX object CMakeFiles/kimera_vio.dir/src/utils/UtilsOpenCV.cpp.o
#61 510.2 [ 42%] Building CXX object CMakeFiles/kimera_vio.dir/src/utils/UtilsNumerical.cpp.o
#61 510.6 [ 43%] Building CXX object CMakeFiles/kimera_vio.dir/src/pipeline/MonoImuPipeline.cpp.o
#61 513.3 [ 43%] Building CXX object CMakeFiles/kimera_vio.dir/src/pipeline/PipelineModule.cpp.o
#61 514.3 [ 44%] Building CXX object CMakeFiles/kimera_vio.dir/src/pipeline/PipelinePayload.cpp.o
#61 515.9 [ 45%] Building CXX object CMakeFiles/kimera_vio.dir/src/pipeline/PipelineParams.cpp.o
#61 516.0 [ 46%] Building CXX object CMakeFiles/kimera_vio.dir/src/pipeline/Pipeline.cpp.o
#61 516.2 [ 46%] Building CXX object CMakeFiles/kimera_vio.dir/src/pipeline/Pipeline-definitions.cpp.o
#61 516.5 [ 47%] Building CXX object CMakeFiles/kimera_vio.dir/src/pipeline/QueueSynchronizer.cpp.o
#61 519.7 [ 48%] Building CXX object CMakeFiles/kimera_vio.dir/src/pipeline/StereoImuPipeline.cpp.o
#61 540.0 [ 49%] Building CXX object CMakeFiles/kimera_vio.dir/src/common/VioNavState.cpp.o
#61 550.9 [ 49%] Building CXX object CMakeFiles/kimera_vio.dir/src/loopclosure/LoopClosureDetector.cpp.o
#61 620.1 c++: internal compiler error: Killed (program cc1plus)
#61 620.1 Please submit a full bug report,
#61 620.1 with preprocessed source if appropriate.
#61 620.1 See <file:///usr/share/doc/gcc-7/README.Bugs> for instructions.
#61 620.1 CMakeFiles/kimera_vio.dir/build.make:1310: recipe for target 'CMakeFiles/kimera_vio.dir/src/pipeline/MonoImuPipeline.cpp.o' failed
#61 620.1 make[2]: *** [CMakeFiles/kimera_vio.dir/src/pipeline/MonoImuPipeline.cpp.o] Error 4
#61 620.1 make[2]: *** Deleting file 'CMakeFiles/kimera_vio.dir/src/pipeline/MonoImuPipeline.cpp.o'
#61 620.1 make[2]: *** Waiting for unfinished jobs....
#61 653.6 make[1]: *** [CMakeFiles/kimera_vio.dir/all] Error 2
#61 653.6 CMakeFiles/Makefile2:163: recipe for target 'CMakeFiles/kimera_vio.dir/all' failed
#61 653.6 make: *** [all] Error 2
#61 653.6 Makefile:140: recipe for target 'all' failed
------
executor failed running [/bin/sh -c cd Kimera-VIO     && mkdir build     && cd build     && cmake .. -DCMAKE_CXX_FLAGS='    -Wno-comment     -Wno-maybe-uninitialized     -Wno-parentheses     -Wno-pragma-once-outside-header     -Wno-reorder     -Wno-return-type     -Wno-sign-compare     -Wno-unused-but-set-variable     -Wno-unused-function     -Wno-unused-parameter     -Wno-unused-value     -Wno-unused-variable'     && make -j$(nproc)]: exit code: 2

Additional files: Please attach all the files needed to reproduce the error.

script/docker/Dockerfile

# Use an official Python runtime as a parent image
FROM ubuntu:18.04 as base

LABEL maintainer='Antoni Rosinol "arosinol@mit.edu"'

# To avoid tzdata asking for geographic location...
ENV DEBIAN_frontend noninteractive

# Set the working directory to /root
ENV DIRPATH /root
WORKDIR $DIRPATH
ENV DEBIAN_FRONTEND=noninteractive
#Install build dependencies
RUN apt-get update && apt-get install -y --no-install-recommends apt-utils

FROM base as dev
RUN apt-get update && apt-get install -y git build-essential cmake unzip pkg-config

# Install xvfb to provide a display to container for GUI related testing.
RUN apt-get update && apt-get install -y xvfb

FROM dev as dev-boost
# Install GTSAM
RUN apt-get update && apt-get install -y libboost-all-dev
FROM dev-boost as gtsam-code
ADD https://api.github.com/repos/borglab/gtsam/git/refs/heads/master version.json
RUN git clone https://github.com/borglab/gtsam.git
RUN cd gtsam && \
    git fetch && \
    git reset --hard e5866799dff48239573cdd84964180867e50edd2
FROM gtsam-code as gtsam
RUN cd gtsam && \
    mkdir build && \
    cd build && \
    cmake -DCMAKE_INSTALL_PREFIX=/usr/local -DGTSAM_BUILD_TESTS=OFF -DGTSAM_BUILD_EXAMPLES_ALWAYS=OFF -DCMAKE_BUILD_TYPE=Release -DGTSAM_BUILD_UNSTABLE=ON -DGTSAM_TANGENT_PREINTEGRATION=OFF .. && \
    make -j$(nproc) install

FROM dev as opencv
# Install OpenCV for Ubuntu 18.04
RUN apt-get update && apt-get install -y \
      libjpeg-dev libpng-dev libtiff-dev \
      libvtk6-dev \
      libgtk-3-dev \
      libatlas-base-dev gfortran

RUN git clone https://github.com/opencv/opencv.git
RUN cd opencv && \
      git checkout tags/3.3.1 && \
      mkdir build

RUN git clone https://github.com/opencv/opencv_contrib.git
RUN cd opencv_contrib && \
      git checkout tags/3.3.1

RUN cd opencv/build && \
      cmake -DCMAKE_BUILD_TYPE=Release \
      -DCMAKE_INSTALL_PREFIX=/usr/local \
      -D BUILD_opencv_python=OFF \
      -D BUILD_opencv_python2=OFF \
      -D BUILD_opencv_python3=OFF \
      -DOPENCV_EXTRA_MODULES_PATH=$DIRPATH/opencv_contrib/modules .. && \
      make -j$(nproc) install

# Install Open_GV
FROM dev as opengv
COPY --from=gtsam-code $DIRPATH/gtsam $DIRPATH/gtsam
RUN git clone https://github.com/laurentkneip/opengv
RUN cd opengv && \
      mkdir build
RUN cd opengv/build && \
      cmake -DCMAKE_BUILD_TYPE=Release \
      -DCMAKE_INSTALL_PREFIX=/usr/local \
      -DEIGEN_INCLUDE_DIRS=$DIRPATH/gtsam/gtsam/3rdparty/Eigen \
      -DEIGEN_INCLUDE_DIR=$DIRPATH/gtsam/gtsam/3rdparty/Eigen .. && \
      make -j$(nproc) install

FROM opencv as dbcow2-code
# Install DBoW2
RUN git clone https://github.com/dorian3d/DBoW2.git
FROM dbcow2-code as dbcow2
RUN cd DBoW2 && \
      mkdir build && \
      cd build && \
      cmake .. && \
      make -j$(nproc) install

FROM dev-boost AS pgo
# Install RobustPGO
COPY --from=gtsam /usr/local /usr/local
ADD https://api.github.com/repos/MIT-SPARK/Kimera-RPGO/git/refs/heads/master version.json
RUN git clone https://github.com/MIT-SPARK/Kimera-RPGO.git
RUN cd Kimera-RPGO && \
      mkdir build && \
      cd build && \
      cmake .. && \
      make -j$(nproc) install

FROM dev-boost as python3
## [Optional] Install Kimera-VIO-Evaluation from PyPI
RUN apt-get update && \
    apt-get install software-properties-common -y
# Get python3
RUN apt-get update && \
    add-apt-repository ppa:deadsnakes/ppa
RUN apt-get update && \
    apt-get install -y python3.9 python3.9-dev python-pip python3-pip  python3.9-distutils 
RUN python3.9 -m pip install --upgrade pip wheel setuptools requests

FROM python3 as python3-ui
RUN apt-get update && \
    apt-get install -y python-tk python3-tk qt5-default qtbase5-dev python3-pyqt5 qttools5-dev-tools
RUN qmake --version
# RUN python3.9 -m pip install PyQt5==5.15.7

FROM python3-ui as evo1
# Install evo-1 for evaluation
# Hack to avoid Docker's cache when evo-1 master branch is updated.
ADD https://api.github.com/repos/ToniRV/evo-1/git/refs/heads/master version.json
RUN git clone https://github.com/ToniRV/evo-1.git
RUN cd evo-1 && python3.9 $(which pip3) install .

FROM evo1 as kimera-build

COPY --from=gtsam /usr/local /usr/local
COPY --from=gtsam-code $DIRPATH/gtsam $DIRPATH/gtsam
COPY --from=opencv /usr/local /usr/local
COPY --from=opengv /usr/local /usr/local
COPY --from=dbcow2 /usr/local /usr/local
COPY --from=pgo /usr/local /usr/local

# Install spark_vio_evaluation
RUN python3.9 $(which pip3) install ipython prompt_toolkit
# Hack to avoid Docker's cache when spark_vio_evaluation master branch is updated.
ADD https://api.github.com/repos/ToniRV/Kimera-VIO-Evaluation/git/refs/heads/master version.json
RUN git clone https://github.com/ToniRV/Kimera-VIO-Evaluation.git
# We use `pip3 install -e .` so that Jinja2 has access to the webiste template...
RUN cd Kimera-VIO-Evaluation && python3.9 $(which pip3) install -e .

# Add credentials on build
ARG SSH_PRIVATE_KEY
RUN mkdir /root/.ssh/
RUN echo "${SSH_PRIVATE_KEY}" > /root/.ssh/id_rsa
RUN chmod 600 ~/.ssh/id_rsa

# Make sure your domain is accepted
RUN touch /root/.ssh/known_hosts
RUN ssh-keyscan -t rsa github.com >> /root/.ssh/known_hosts

# Install glog, gflags
RUN apt-get update && apt-get install -y libgflags2.2 libgflags-dev libgoogle-glog0v5 libgoogle-glog-dev

# Install Kimera-VIO
# RUN git clone https://github.com/MIT-SPARK/Kimera-VIO.git
COPY . Kimera-VIO/
RUN cd Kimera-VIO \
    && mkdir build \
    && cd build \
    && cmake .. -DCMAKE_CXX_FLAGS='\
    -Wno-comment \
    -Wno-maybe-uninitialized \
    -Wno-parentheses \
    -Wno-pragma-once-outside-header \
    -Wno-reorder \
    -Wno-return-type \
    -Wno-sign-compare \
    -Wno-unused-but-set-variable \
    -Wno-unused-function \
    -Wno-unused-parameter \
    -Wno-unused-value \
    -Wno-unused-variable' \
    && make -j$(nproc)

FROM base as euroc
# Download and extract EuRoC dataset.
RUN apt-get update && apt-get install -y wget
RUN wget http://robotics.ethz.ch/~asl-datasets/ijrr_euroc_mav_dataset/vicon_room1/V1_01_easy/V1_01_easy.zip
RUN mkdir -p $DIRPATH/euroc && unzip V1_01_easy.zip -d $DIRPATH/euroc

# Yamelize euroc dataset
RUN bash $DIRPATH/Kimera-VIO/scripts/euroc/yamelize.bash -p $DIRPATH/euroc

#CMD xvfb-run $DIRPATH/Kimera-VIO/scripts/stereoVIOEuroc.bash -p $DIRPATH/euroc -r
CMD $DIRPATH/Kimera-VIO/scripts/stereoVIOEuroc.bash -p $DIRPATH/euroc -r

FROM base as build
COPY --from=kimera-build /usr/local /usr/local
COPY --from=euroc $DIRPATH/euroc $DIRPATH/euroc

Please give also the following information:

GoldenZephyr commented 1 year ago

In my experience this is usually due to the compiler running out of memory. Forcing it to build the packages sequentially is often the easiest away around this -- if you use make -j 1 ... instead of -j$(nproc) you can make it use only one thread. There is hopefully a sweet spot between 1 and nproc.

PilchardFriendly commented 1 year ago

That indeed fix it. Thanks! (I settled on 4).