|
1 | 1 | FROM ubuntu:24.04 |
2 | 2 |
|
3 | 3 | ARG DEBIAN_FRONTEND=noninteractive |
| 4 | +ARG OPENCV_VERSION=4.13.0 |
4 | 5 |
|
5 | 6 | LABEL maintainer="2592509183@qq.com" |
6 | | -LABEL description="This is a Docker Image for XRobot build." |
| 7 | +LABEL description="Docker Image for XRobot Linux build with OpenCV 4.13.0" |
7 | 8 |
|
8 | | -RUN apt update |
9 | | - |
10 | | -RUN apt upgrade -y --no-install-recommends & apt install -y --no-install-recommends xz-utils git curl sudo wget zip make && apt install -y net-tools usbutils nano gdb cmake ninja-build file clang-18 clangd clang-tidy gcc g++ python3-tk libwpa-client-dev libnm-dev libudev-dev libgpiod-dev && apt clean |
11 | | - |
12 | | -RUN sudo mv /usr/lib/python3.12/EXTERNALLY-MANAGED /usr/lib/python3.12/EXTERNALLY-MANAGED.bk |
| 9 | +RUN apt-get update && \ |
| 10 | + apt-get upgrade -y --no-install-recommends && \ |
| 11 | + apt-get install -y --no-install-recommends \ |
| 12 | + xz-utils git curl sudo wget zip unzip make file nano gdb \ |
| 13 | + net-tools usbutils \ |
| 14 | + cmake ninja-build pkg-config ca-certificates \ |
| 15 | + clang-18 clangd clang-tidy \ |
| 16 | + gcc g++ \ |
| 17 | + python3 python3-venv python3-tk \ |
| 18 | + libwpa-client-dev libnm-dev libudev-dev libgpiod-dev \ |
| 19 | + libjpeg-dev libpng-dev libtiff-dev \ |
| 20 | + libavcodec-dev libavformat-dev libswscale-dev \ |
| 21 | + libv4l-dev libxvidcore-dev libx264-dev \ |
| 22 | + libgtk-3-dev libcanberra-gtk3-module \ |
| 23 | + libtbb-dev libdc1394-dev libopenexr-dev \ |
| 24 | + libeigen3-dev && \ |
| 25 | + rm -rf /var/lib/apt/lists/* |
13 | 26 |
|
14 | 27 | RUN update-alternatives --install /usr/bin/clang clang /usr/bin/clang-18 100 && \ |
15 | 28 | update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-18 100 |
16 | 29 |
|
17 | | -RUN ln -s /usr/bin/python3 /usr/bin/python && curl -sS https://bootstrap.pypa.io/get-pip.py | python3 |
| 30 | +RUN mv /usr/lib/python3.12/EXTERNALLY-MANAGED /usr/lib/python3.12/EXTERNALLY-MANAGED.bk || true && \ |
| 31 | + ln -sf /usr/bin/python3 /usr/bin/python && \ |
| 32 | + curl -sS https://bootstrap.pypa.io/get-pip.py | python3 |
| 33 | + |
| 34 | +RUN set -eux; \ |
| 35 | + cd /tmp; \ |
| 36 | + wget -O opencv.zip "https://github.com/opencv/opencv/archive/${OPENCV_VERSION}.zip"; \ |
| 37 | + wget -O opencv_contrib.zip "https://github.com/opencv/opencv_contrib/archive/${OPENCV_VERSION}.zip"; \ |
| 38 | + unzip -q opencv.zip; \ |
| 39 | + unzip -q opencv_contrib.zip; \ |
| 40 | + cmake -S "opencv-${OPENCV_VERSION}" -B "opencv-${OPENCV_VERSION}/build" -G Ninja \ |
| 41 | + -DCMAKE_BUILD_TYPE=Release \ |
| 42 | + -DCMAKE_C_COMPILER=clang \ |
| 43 | + -DCMAKE_CXX_COMPILER=clang++ \ |
| 44 | + -DCMAKE_CXX_STANDARD=14 \ |
| 45 | + -DOPENCV_EXTRA_MODULES_PATH="/tmp/opencv_contrib-${OPENCV_VERSION}/modules" \ |
| 46 | + -DBUILD_LIST=core,imgproc,imgcodecs,videoio,highgui,calib3d,dnn,features2d,flann,objdetect,aruco \ |
| 47 | + -DOPENCV_GENERATE_PKGCONFIG=ON \ |
| 48 | + -DBUILD_TESTS=OFF \ |
| 49 | + -DBUILD_PERF_TESTS=OFF \ |
| 50 | + -DBUILD_EXAMPLES=OFF \ |
| 51 | + -DBUILD_opencv_apps=OFF \ |
| 52 | + -DBUILD_opencv_python3=OFF \ |
| 53 | + -DBUILD_JAVA=OFF; \ |
| 54 | + cmake --build "opencv-${OPENCV_VERSION}/build" -j"$(nproc)"; \ |
| 55 | + cmake --install "opencv-${OPENCV_VERSION}/build"; \ |
| 56 | + ldconfig; \ |
| 57 | + cd /; \ |
| 58 | + rm -rf "/tmp/opencv.zip" "/tmp/opencv_contrib.zip" "/tmp/opencv-${OPENCV_VERSION}" "/tmp/opencv_contrib-${OPENCV_VERSION}" |
| 59 | + |
| 60 | +ENV OpenCV_DIR=/usr/local/lib/cmake/opencv4 |
| 61 | +ENV CMAKE_PREFIX_PATH=/usr/local/lib/cmake/opencv4:${CMAKE_PREFIX_PATH} |
0 commit comments