-
Notifications
You must be signed in to change notification settings - Fork 316
Expand file tree
/
Copy pathDockerfile
More file actions
95 lines (86 loc) · 2.88 KB
/
Copy pathDockerfile
File metadata and controls
95 lines (86 loc) · 2.88 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
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="-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 && \
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/*