Workflows: updated docker multi-arch (removed armv7)

This commit is contained in:
matlabbe
2021-09-30 18:00:17 -04:00
parent 54c0ee4244
commit 697fe5ebb3
5 changed files with 185 additions and 153 deletions
-2
View File
@@ -27,7 +27,6 @@ jobs:
docker_platforms: | docker_platforms: |
linux/amd64 linux/amd64
linux/arm64 linux/arm64
linux/arm/v7
docker_path: 'bionic' docker_path: 'bionic'
- docker_tag: focal - docker_tag: focal
docker_tags: | docker_tags: |
@@ -37,7 +36,6 @@ jobs:
docker_platforms: | docker_platforms: |
linux/amd64 linux/amd64
linux/arm64 linux/arm64
linux/arm/v7
docker_path: 'focal' docker_path: 'focal'
- docker_tag: android23 - docker_tag: android23
docker_tags: | docker_tags: |
+16 -54
View File
@@ -38,60 +38,22 @@ RUN cd libpointmatcher && \
cd && \ cd && \
rm -r libpointmatcher rm -r libpointmatcher
# AliceVision v2.4.0 modified (Sept 13 2021) ARG TARGETPLATFORM
RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y \ ENV TARGETPLATFORM=${TARGETPLATFORM:-linux/amd64}
libsuitesparse-dev \ RUN echo "I am building for $TARGETPLATFORM"
libceres-dev \
xorg-dev \ # cmake >=3.11 required for amd64 dependencies
libglu1-mesa-dev \ RUN if [ "$TARGETPLATFORM" = "linux/amd64" ]; then apt install -y wget && \
wget wget -nv https://github.com/Kitware/CMake/releases/download/v3.17.0/cmake-3.17.0-Linux-x86_64.tar.gz && \
RUN git clone https://github.com/OpenImageIO/oiio.git
RUN cd oiio && \
git checkout Release-2.0.12 && \
mkdir build && \
cd build && \
cmake -DUSE_PYTHON=OFF -DOIIO_BUILD_TESTS=OFF -DOIIO_BUILD_TOOLS=OFF .. && \
make -j$(nproc) && \
make install && \
cd && \
rm -r oiio
RUN git clone https://github.com/assimp/assimp.git
RUN cd assimp && \
git checkout 71a87b653cd4b5671104fe49e2e38cf5dd4d8675 && \
mkdir build && \
cd build && \
cmake .. && \
make -j$(nproc) && \
make install && \
cd && \
rm -r assimp
RUN git clone https://github.com/alicevision/geogram.git
RUN cd geogram && \
git checkout v1.7.6 && \
wget https://gist.githubusercontent.com/matlabbe/1df724465106c056ca4cc195c81d8cf0/raw/b3ed4cb8f9b270833a40d57d870a259eabfa4415/geogram_8b2ae61.patch && \
git apply geogram_8b2ae61.patch && \
./configure.sh && \
cd build/Linux64-gcc-dynamic-Release && \
make -j$(nproc) && \
make install && \
cd && \
rm -r geogram
# cmake >=3.11 required
RUN wget -nv https://github.com/Kitware/CMake/releases/download/v3.17.0/cmake-3.17.0-Linux-x86_64.tar.gz && \
tar -xzf cmake-3.17.0-Linux-x86_64.tar.gz && \ tar -xzf cmake-3.17.0-Linux-x86_64.tar.gz && \
rm cmake-3.17.0-Linux-x86_64.tar.gz rm cmake-3.17.0-Linux-x86_64.tar.gz &&\
RUN git clone https://github.com/alicevision/AliceVision.git --recursive ln -s ~/cmake-3.17.0-Linux-x86_64/bin/cmake ~/cmake; fi
RUN cd AliceVision && \
git checkout 0f6115b6af6183c524aa7fcf26141337c1cf3872 && \ # amd64-only dependencies
wget https://gist.githubusercontent.com/matlabbe/1df724465106c056ca4cc195c81d8cf0/raw/b3ed4cb8f9b270833a40d57d870a259eabfa4415/alicevision_0f6115b.patch && \ ADD amd64.bash /root/amd64.bash
git apply alicevision_0f6115b.patch && \ RUN chmod +x amd64.bash
mkdir build && \ RUN if [ "$TARGETPLATFORM" = "linux/amd64" ]; then /bin/bash -c "./amd64.bash"; fi
cd build && \ RUN if [ "$TARGETPLATFORM" = "linux/arm64" ]; then ln -s /usr/bin/cmake ~/cmake; fi
../../cmake-3.17.0-Linux-x86_64/bin/cmake -DALICEVISION_USE_CUDA=OFF -DALICEVISION_USE_APRILTAG=OFF -DALICEVISION_BUILD_SOFTWARE=OFF .. && \
make -j$(nproc) && \
make install && \
cd && \
rm -r AliceVision
# Clone source code # Clone source code
ARG CACHE_DATE=2016-01-01 ARG CACHE_DATE=2016-01-01
@@ -102,7 +64,7 @@ RUN rm /bin/sh && ln -s /bin/bash /bin/sh
# Build RTAB-Map project # Build RTAB-Map project
RUN source /ros_entrypoint.sh && \ RUN source /ros_entrypoint.sh && \
cd rtabmap/build && \ cd rtabmap/build && \
../../cmake-3.17.0-Linux-x86_64/bin/cmake -DWITH_ALICE_VISION=ON .. && \ ~/cmake -DWITH_ALICE_VISION=ON .. && \
make -j2 && \ make -j2 && \
make install && \ make install && \
cd ../.. && \ cd ../.. && \
+51
View File
@@ -0,0 +1,51 @@
#!/bin/bash
# AliceVision v2.4.0 modified (Sept 13 2021)
apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y \
libsuitesparse-dev \
libceres-dev \
xorg-dev \
libglu1-mesa-dev
git clone https://github.com/OpenImageIO/oiio.git
cd oiio && \
git checkout Release-2.0.12 && \
mkdir build && \
cd build && \
cmake -DUSE_PYTHON=OFF -DOIIO_BUILD_TESTS=OFF -DOIIO_BUILD_TOOLS=OFF .. && \
make -j$(nproc) && \
make install && \
cd && \
rm -r oiio
git clone https://github.com/assimp/assimp.git
cd assimp && \
git checkout 71a87b653cd4b5671104fe49e2e38cf5dd4d8675 && \
mkdir build && \
cd build && \
cmake .. && \
make -j$(nproc) && \
make install && \
cd && \
rm -r assimp
git clone https://github.com/alicevision/geogram.git
cd geogram && \
git checkout v1.7.6 && \
wget https://gist.githubusercontent.com/matlabbe/1df724465106c056ca4cc195c81d8cf0/raw/b3ed4cb8f9b270833a40d57d870a259eabfa4415/geogram_8b2ae61.patch && \
git apply geogram_8b2ae61.patch && \
./configure.sh && \
cd build/Linux64-gcc-dynamic-Release && \
make -j$(nproc) && \
make install && \
cd && \
rm -r geogram
git clone https://github.com/alicevision/AliceVision.git --recursive
cd AliceVision && \
git checkout 0f6115b6af6183c524aa7fcf26141337c1cf3872 && \
wget https://gist.githubusercontent.com/matlabbe/1df724465106c056ca4cc195c81d8cf0/raw/b3ed4cb8f9b270833a40d57d870a259eabfa4415/alicevision_0f6115b.patch && \
git apply alicevision_0f6115b.patch && \
mkdir build && \
cd build && \
~/cmake -DALICEVISION_USE_CUDA=OFF -DALICEVISION_USE_APRILTAG=OFF -DALICEVISION_BUILD_SOFTWARE=OFF .. && \
make -j$(nproc) && \
make install && \
cd && \
rm -r AliceVision
+14 -97
View File
@@ -38,106 +38,23 @@ RUN cd libpointmatcher && \
cd && \ cd && \
rm -r libpointmatcher rm -r libpointmatcher
# libfreenect2
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get install -y mesa-utils xserver-xorg-video-all libusb-1.0-0-dev libturbojpeg0-dev libglfw3-dev
RUN git clone https://github.com/OpenKinect/libfreenect2
RUN cd libfreenect2 && \
mkdir build && \
cd build && \
cmake .. && \
make -j$(nproc) && \
make install && \
cd && \
rm -r libfreenect2
# RealSense2
RUN apt-get install -y ros-noetic-realsense2-camera
# Azure Kinect DK
# Taken from https://github.com/microsoft/Azure-Kinect-Sensor-SDK/issues/1190#issuecomment-822772494
# K4A binaries on 20.04 not released yet, we should take those from 18.04
RUN curl -sSL https://packages.microsoft.com/ubuntu/18.04/prod/pool/main/libk/libk4a1.3/libk4a1.3_1.3.0_amd64.deb > /tmp/libk4a1.3_1.3.0_amd64.deb
RUN curl -sSL https://packages.microsoft.com/ubuntu/18.04/prod/pool/main/libk/libk4a1.3-dev/libk4a1.3-dev_1.3.0_amd64.deb > /tmp/libk4a1.3-dev_1.3.0_amd64.deb
RUN curl -sSL https://packages.microsoft.com/ubuntu/18.04/prod/pool/main/libk/libk4abt1.0/libk4abt1.0_1.0.0_amd64.deb > /tmp/libk4abt1.0_1.0.0_amd64.deb
RUN curl -sSL https://packages.microsoft.com/ubuntu/18.04/prod/pool/main/libk/libk4abt1.0-dev/libk4abt1.0-dev_1.0.0_amd64.deb > /tmp/libk4abt1.0-dev_1.0.0_amd64.deb
RUN curl -sSL https://packages.microsoft.com/ubuntu/18.04/prod/pool/main/k/k4a-tools/k4a-tools_1.3.0_amd64.deb > /tmp/k4a-tools_1.3.0_amd64.deb
RUN echo 'libk4a1.3 libk4a1.3/accepted-eula-hash string 0f5d5c5de396e4fee4c0753a21fee0c1ed726cf0316204edda484f08cb266d76' | debconf-set-selections
RUN echo 'libk4abt1.0 libk4abt1.0/accepted-eula-hash string 03a13b63730639eeb6626d24fd45cf25131ee8e8e0df3f1b63f552269b176e38' | debconf-set-selections
RUN dpkg -i /tmp/libk4a1.3_1.3.0_amd64.deb
RUN dpkg -i /tmp/libk4a1.3-dev_1.3.0_amd64.deb
RUN dpkg -i /tmp/libk4abt1.0_1.0.0_amd64.deb
RUN dpkg -i /tmp/libk4abt1.0-dev_1.0.0_amd64.deb
RUN apt-get install -y libsoundio1
RUN dpkg -i /tmp/k4a-tools_1.3.0_amd64.deb
RUN rm /tmp/libk4a* /tmp/k4a*
# zed open capture
RUN apt install libusb-1.0-0-dev libhidapi-libusb0 libhidapi-dev wget
RUN git clone https://github.com/stereolabs/zed-open-capture.git
RUN cd zed-open-capture && \
mkdir build && \
cd build && \
cmake .. && \
make -j$(nproc) && \
make install && \
cd && \
rm -r zed-open-capture
# AliceVision v2.4.0 modified (Sept 13 2021)
RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y \
libsuitesparse-dev \
libceres-dev \
xorg-dev \
libglu1-mesa-dev \
wget
RUN git clone https://github.com/OpenImageIO/oiio.git
RUN cd oiio && \
git checkout Release-2.0.12 && \
mkdir build && \
cd build && \
cmake -DUSE_PYTHON=OFF -DOIIO_BUILD_TESTS=OFF -DOIIO_BUILD_TOOLS=OFF .. && \
make -j$(nproc) && \
make install && \
cd && \
rm -r oiio
RUN git clone https://github.com/assimp/assimp.git
RUN cd assimp && \
git checkout 71a87b653cd4b5671104fe49e2e38cf5dd4d8675 && \
mkdir build && \
cd build && \
cmake .. && \
make -j$(nproc) && \
make install && \
cd && \
rm -r assimp
RUN git clone https://github.com/alicevision/geogram.git
RUN cd geogram && \
git checkout v1.7.6 && \
wget https://gist.githubusercontent.com/matlabbe/1df724465106c056ca4cc195c81d8cf0/raw/b3ed4cb8f9b270833a40d57d870a259eabfa4415/geogram_8b2ae61.patch && \
git apply geogram_8b2ae61.patch && \
./configure.sh && \
cd build/Linux64-gcc-dynamic-Release && \
make -j$(nproc) && \
make install && \
cd && \
rm -r geogram
RUN git clone https://github.com/alicevision/AliceVision.git --recursive
RUN cd AliceVision && \
git checkout 0f6115b6af6183c524aa7fcf26141337c1cf3872 && \
wget https://gist.githubusercontent.com/matlabbe/1df724465106c056ca4cc195c81d8cf0/raw/b3ed4cb8f9b270833a40d57d870a259eabfa4415/alicevision_0f6115b.patch && \
git apply alicevision_0f6115b.patch && \
mkdir build && \
cd build && \
cmake -DALICEVISION_USE_CUDA=OFF -DALICEVISION_USE_APRILTAG=OFF -DALICEVISION_BUILD_SOFTWARE=OFF .. && \
make -j$(nproc) && \
make install && \
cd && \
rm -r AliceVision
# PDAL # PDAL
RUN apt-get install -y libpdal-dev RUN apt-get install -y libpdal-dev
# RealSense2
RUN apt-get install -y ros-noetic-librealsense2
ARG TARGETPLATFORM
ENV TARGETPLATFORM=${TARGETPLATFORM:-linux/amd64}
RUN echo "I am building for $TARGETPLATFORM"
ENV DEBIAN_FRONTEND=noninteractive
# amd64-only dependencies
ADD amd64.bash /root/amd64.bash
RUN chmod +x amd64.bash
RUN if [ "$TARGETPLATFORM" = "linux/amd64" ]; then /bin/bash -c "./amd64.bash"; fi
# Clone source code # Clone source code
ARG CACHE_DATE=2016-01-01 ARG CACHE_DATE=2016-01-01
RUN git clone https://github.com/introlab/rtabmap.git RUN git clone https://github.com/introlab/rtabmap.git
+104
View File
@@ -0,0 +1,104 @@
#!/bin/bash
# Azure Kinect DK
echo "Installing k4a..."
# Taken from https://github.com/microsoft/Azure-Kinect-Sensor-SDK/issues/1190#issuecomment-822772494
# K4A binaries on 20.04 not released yet, we should take those from 18.04
echo "Download libk4a1.3_1.3.0_amd64.deb..."
curl -sSL https://packages.microsoft.com/ubuntu/18.04/prod/pool/main/libk/libk4a1.3/libk4a1.3_1.3.0_amd64.deb > /tmp/libk4a1.3_1.3.0_amd64.deb
echo "Download libk4a1.3-dev_1.3.0_amd64.deb..."
curl -sSL https://packages.microsoft.com/ubuntu/18.04/prod/pool/main/libk/libk4a1.3-dev/libk4a1.3-dev_1.3.0_amd64.deb > /tmp/libk4a1.3-dev_1.3.0_amd64.deb
echo "Download libk4abt1.0_1.0.0_amd64.deb..."
curl -sSL https://packages.microsoft.com/ubuntu/18.04/prod/pool/main/libk/libk4abt1.0/libk4abt1.0_1.0.0_amd64.deb > /tmp/libk4abt1.0_1.0.0_amd64.deb
echo "Download libk4abt1.0-dev_1.0.0_amd64.deb..."
curl -sSL https://packages.microsoft.com/ubuntu/18.04/prod/pool/main/libk/libk4abt1.0-dev/libk4abt1.0-dev_1.0.0_amd64.deb > /tmp/libk4abt1.0-dev_1.0.0_amd64.deb
echo "Download k4a-tools_1.3.0_amd64.deb..."
curl -sSL https://packages.microsoft.com/ubuntu/18.04/prod/pool/main/k/k4a-tools/k4a-tools_1.3.0_amd64.deb > /tmp/k4a-tools_1.3.0_amd64.deb
echo "Accept license..."
echo 'libk4a1.3 libk4a1.3/accepted-eula-hash string 0f5d5c5de396e4fee4c0753a21fee0c1ed726cf0316204edda484f08cb266d76' | debconf-set-selections
echo 'libk4abt1.0 libk4abt1.0/accepted-eula-hash string 03a13b63730639eeb6626d24fd45cf25131ee8e8e0df3f1b63f552269b176e38' | debconf-set-selections
dpkg -i /tmp/libk4a1.3_1.3.0_amd64.deb
dpkg -i /tmp/libk4a1.3-dev_1.3.0_amd64.deb
dpkg -i /tmp/libk4abt1.0_1.0.0_amd64.deb
dpkg -i /tmp/libk4abt1.0-dev_1.0.0_amd64.deb
apt-get install -y libsoundio1
dpkg -i /tmp/k4a-tools_1.3.0_amd64.deb
rm /tmp/libk4a* /tmp/k4a*
# libfreenect2
echo "Installing libfreenect2..."
apt-get install -y mesa-utils xserver-xorg-video-all libusb-1.0-0-dev libturbojpeg0-dev libglfw3-dev
git clone https://github.com/OpenKinect/libfreenect2
cd libfreenect2 && \
mkdir build && \
cd build && \
cmake .. && \
make -j$(nproc) && \
make install && \
cd && \
rm -r libfreenect2
# zed open capture
echo "Installing zed-open-capture..."
apt install libusb-1.0-0-dev libhidapi-libusb0 libhidapi-dev wget
git clone https://github.com/stereolabs/zed-open-capture.git
cd zed-open-capture && \
mkdir build && \
cd build && \
cmake .. && \
make -j$(nproc) && \
make install && \
cd && \
rm -r zed-open-capture
# AliceVision v2.4.0 modified (Sept 13 2021)
echo "Installing AliceVision..."
apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y \
libsuitesparse-dev \
libceres-dev \
xorg-dev \
libglu1-mesa-dev \
wget
git clone https://github.com/OpenImageIO/oiio.git
cd oiio && \
git checkout Release-2.0.12 && \
mkdir build && \
cd build && \
cmake -DUSE_PYTHON=OFF -DOIIO_BUILD_TESTS=OFF -DOIIO_BUILD_TOOLS=OFF .. && \
make -j$(nproc) && \
make install && \
cd && \
rm -r oiio
git clone https://github.com/assimp/assimp.git
cd assimp && \
git checkout 71a87b653cd4b5671104fe49e2e38cf5dd4d8675 && \
mkdir build && \
cd build && \
cmake .. && \
make -j$(nproc) && \
make install && \
cd && \
rm -r assimp
git clone https://github.com/alicevision/geogram.git
cd geogram && \
git checkout v1.7.6 && \
wget https://gist.githubusercontent.com/matlabbe/1df724465106c056ca4cc195c81d8cf0/raw/b3ed4cb8f9b270833a40d57d870a259eabfa4415/geogram_8b2ae61.patch && \
git apply geogram_8b2ae61.patch && \
./configure.sh && \
cd build/Linux64-gcc-dynamic-Release && \
make -j$(nproc) && \
make install && \
cd && \
rm -r geogram
git clone https://github.com/alicevision/AliceVision.git --recursive
cd AliceVision && \
git checkout 0f6115b6af6183c524aa7fcf26141337c1cf3872 && \
wget https://gist.githubusercontent.com/matlabbe/1df724465106c056ca4cc195c81d8cf0/raw/b3ed4cb8f9b270833a40d57d870a259eabfa4415/alicevision_0f6115b.patch && \
git apply alicevision_0f6115b.patch && \
mkdir build && \
cd build && \
cmake -DALICEVISION_USE_CUDA=OFF -DALICEVISION_USE_APRILTAG=OFF -DALICEVISION_BUILD_SOFTWARE=OFF .. && \
make -j$(nproc) && \
make install && \
cd && \
rm -r AliceVision