Skip to content

Commit 681114d

Browse files
committed
build(docker): update OpenCV to 4.13
1 parent b163ef7 commit 681114d

2 files changed

Lines changed: 71 additions & 16 deletions

File tree

linux/Dockerfile

Lines changed: 51 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,61 @@
11
FROM ubuntu:24.04
22

33
ARG DEBIAN_FRONTEND=noninteractive
4+
ARG OPENCV_VERSION=4.13.0
45

56
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"
78

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/*
1326

1427
RUN update-alternatives --install /usr/bin/clang clang /usr/bin/clang-18 100 && \
1528
update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-18 100
1629

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}

webots/Dockerfile

Lines changed: 20 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
FROM ubuntu:24.04
22

33
ARG DEBIAN_FRONTEND=noninteractive
4+
ARG OPENCV_VERSION=4.13.0
45

56
LABEL maintainer="2592509183@qq.com" \
6-
description="Docker Image for XRobot build with Webots and OpenCV 4.10.0"
7+
description="Docker Image for XRobot build with Webots and OpenCV 4.13.0"
78

89
RUN apt-get update && \
910
apt-get upgrade -y --no-install-recommends && \
@@ -55,18 +56,28 @@ RUN set -eux; \
5556
libeigen3-dev && \
5657
rm -rf /var/lib/apt/lists/* && \
5758
cd /tmp && \
58-
wget -O opencv.zip https://github.com/opencv/opencv/archive/4.10.0.zip && \
59+
wget -O opencv.zip "https://github.com/opencv/opencv/archive/${OPENCV_VERSION}.zip" && \
60+
wget -O opencv_contrib.zip "https://github.com/opencv/opencv_contrib/archive/${OPENCV_VERSION}.zip" && \
5961
unzip -q opencv.zip && \
60-
mkdir -p opencv-4.10.0/build && \
61-
cd opencv-4.10.0/build && \
62-
cmake .. \
62+
unzip -q opencv_contrib.zip && \
63+
cmake -S "opencv-${OPENCV_VERSION}" -B "opencv-${OPENCV_VERSION}/build" -G Ninja \
6364
-DCMAKE_BUILD_TYPE=Release \
6465
-DCMAKE_C_COMPILER=clang \
6566
-DCMAKE_CXX_COMPILER=clang++ \
6667
-DCMAKE_CXX_STANDARD=14 \
68+
-DOPENCV_EXTRA_MODULES_PATH="/tmp/opencv_contrib-${OPENCV_VERSION}/modules" \
69+
-DBUILD_LIST=core,imgproc,imgcodecs,videoio,highgui,calib3d,dnn,features2d,flann,objdetect,aruco \
70+
-DOPENCV_GENERATE_PKGCONFIG=ON \
6771
-DBUILD_TESTS=OFF \
68-
-DBUILD_PERF_TESTS=OFF && \
69-
make -j"$(nproc)" && \
70-
make install && \
72+
-DBUILD_PERF_TESTS=OFF \
73+
-DBUILD_EXAMPLES=OFF \
74+
-DBUILD_opencv_apps=OFF \
75+
-DBUILD_opencv_python3=OFF \
76+
-DBUILD_JAVA=OFF && \
77+
cmake --build "opencv-${OPENCV_VERSION}/build" -j"$(nproc)" && \
78+
cmake --install "opencv-${OPENCV_VERSION}/build" && \
7179
ldconfig && \
72-
cd / && rm -rf /tmp/opencv.zip /tmp/opencv-4.10.0
80+
cd / && rm -rf "/tmp/opencv.zip" "/tmp/opencv_contrib.zip" "/tmp/opencv-${OPENCV_VERSION}" "/tmp/opencv_contrib-${OPENCV_VERSION}"
81+
82+
ENV OpenCV_DIR=/usr/local/lib/cmake/opencv4
83+
ENV CMAKE_PREFIX_PATH=/usr/local/lib/cmake/opencv4:${CMAKE_PREFIX_PATH}

0 commit comments

Comments
 (0)