From af13d41011fba5343ac9e3cd4d262c16d4adcd94 Mon Sep 17 00:00:00 2001 From: HaiVQ Date: Thu, 20 Mar 2025 14:19:20 +0700 Subject: [PATCH 1/3] add Dockerfile for libopenshot --- Dockerfile | 95 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 95 insertions(+) create mode 100644 Dockerfile diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 000000000..ff436222f --- /dev/null +++ b/Dockerfile @@ -0,0 +1,95 @@ +FROM buildpack-deps:bookworm AS build_stage + +WORKDIR /build + +RUN git clone --depth=1 https://github.com/OpenShot/libopenshot.git && \ + git clone --depth=1 https://github.com/OpenShot/libopenshot-audio.git + +RUN sed -i -e's/ main/ main contrib non-free non-free-firmware/g' /etc/apt/sources.list.d/debian.sources && \ + apt-get update && \ + apt-get install -y --no-install-recommends \ + cmake \ + pkg-config dpkg \ + libfreetype-dev \ + libasound2-dev \ + libavcodec-dev \ + libavformat-dev \ + libavutil-dev \ + libswresample-dev \ + libswscale-dev \ + libpostproc-dev \ + libfdk-aac-dev \ + libjsoncpp-dev \ + cppzmq-dev libzmq3-dev \ + qtbase5-dev \ + libqt5svg5-dev \ + libbabl-dev \ + libopencv-dev \ + libprotobuf-dev \ + protobuf-compiler \ + libpython3.11-dev \ + swig zlib1g \ + libgcc-s1 libstdc++6 \ + libomp-dev \ + libmagick++-6.q16-dev libmagick++-dev \ + && \ + apt-get clean && rm -rf /var/lib/apt/lists/* + +ARG CMAKE_CXX_FLAGS="-O3 -flto=auto -ffast-math -fprofile-generate -fprofile-use -DNDEBUG -march=native -mtune=native -Wall -Wextra" + +RUN cd libopenshot-audio && \ + cmake -DCMAKE_CXX_FLAGS="${CMAKE_CXX_FLAGS}" -B build -S . && cmake --build build -j$(nproc) && cmake --install build && \ + cd ../libopenshot && \ + cmake \ + -DCMAKE_CXX_FLAGS="${CMAKE_CXX_FLAGS}" \ + -DDISABLE_BUNDLED_JSONCPP="1" \ + -DENABLE_TESTS="0" \ + -DENABLE_COVERAGE="0" \ + -DCMAKE_BUILD_TYPE="Release" \ + -DENABLE_LIB_DOCS="0" \ + -B build -S . && \ + cmake --build build -j$(nproc) + +FROM debian:bookworm-slim AS run_stage + +ENV PYTHONDONTWRITEBYTECODE=1 \ + PYTHONUNBUFFERED=1 \ + DEBIAN_FRONTEND=noninteractive + +WORKDIR /app + +RUN --mount=from=build_stage,source=/build,target=/build,rw \ + sed -i -e's/ main/ main contrib non-free non-free-firmware/g' /etc/apt/sources.list.d/debian.sources && \ + apt-get update && \ + apt-get install -y --no-install-recommends \ + cmake \ + libfreetype6 \ + libasound2 \ + libavcodec59 \ + libavformat59 \ + libavutil57 \ + libswresample4 \ + libswscale6 \ + libpostproc56 \ + libfdk-aac2 \ + libjsoncpp25 \ + libzmq5 \ + libqt5core5a libqt5svg5 \ + gir1.2-babl-0.1 libbabl-0.1-0 \ + libopencv-core406 libopencv-contrib406 \ + libopencv-imgproc406 \ + libprotobuf32 \ + python3 libpython3.11 python3-pyqt5 \ + swig zlib1g \ + libc6 libstdc++6 \ + imagemagick-6-common libmagick++-6.q16-8 \ + libomp5-14 \ + ffmpeg \ + && \ + cd /build/libopenshot-audio && cmake --install build && \ + cd /build/libopenshot && cmake --install build && \ + ldconfig && \ + apt-get autoremove -y \ + cmake \ + && \ + apt-get clean && rm -rf /var/lib/apt/lists/* \ No newline at end of file From 72cbcf62afddaf2442ccf371fbc38717ed8c0330 Mon Sep 17 00:00:00 2001 From: HaiVQ Date: Thu, 20 Mar 2025 14:23:12 +0700 Subject: [PATCH 2/3] remove double quote like mentioned in wiki --- Dockerfile | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Dockerfile b/Dockerfile index ff436222f..8f90d9449 100644 --- a/Dockerfile +++ b/Dockerfile @@ -42,11 +42,11 @@ RUN cd libopenshot-audio && \ cd ../libopenshot && \ cmake \ -DCMAKE_CXX_FLAGS="${CMAKE_CXX_FLAGS}" \ - -DDISABLE_BUNDLED_JSONCPP="1" \ - -DENABLE_TESTS="0" \ - -DENABLE_COVERAGE="0" \ - -DCMAKE_BUILD_TYPE="Release" \ - -DENABLE_LIB_DOCS="0" \ + -DDISABLE_BUNDLED_JSONCPP=1 \ + -DENABLE_TESTS=0 \ + -DENABLE_COVERAGE=0 \ + -DCMAKE_BUILD_TYPE=Release \ + -DENABLE_LIB_DOCS=0 \ -B build -S . && \ cmake --build build -j$(nproc) From 6a2b3f7ebcd826ca1d1ab597f10851b28cf19d81 Mon Sep 17 00:00:00 2001 From: HaiVQ Date: Fri, 4 Apr 2025 11:44:06 +0700 Subject: [PATCH 3/3] Update CMAKE_CXX_FLAGS in Dockerfile for improved performance and optimization --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 8f90d9449..e188ece56 100644 --- a/Dockerfile +++ b/Dockerfile @@ -35,7 +35,7 @@ RUN sed -i -e's/ main/ main contrib non-free non-free-firmware/g' /etc/apt/sourc && \ apt-get clean && rm -rf /var/lib/apt/lists/* -ARG CMAKE_CXX_FLAGS="-O3 -flto=auto -ffast-math -fprofile-generate -fprofile-use -DNDEBUG -march=native -mtune=native -Wall -Wextra" +ARG CMAKE_CXX_FLAGS="-Ofast -flto=auto -DNDEBUG -march=native -mtune=native -funroll-loops -Wall -Wextra -Wl,--gc-sections" RUN cd libopenshot-audio && \ cmake -DCMAKE_CXX_FLAGS="${CMAKE_CXX_FLAGS}" -B build -S . && cmake --build build -j$(nproc) && cmake --install build && \