-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathDockerfile.magicpodscore
More file actions
53 lines (43 loc) · 1.47 KB
/
Copy pathDockerfile.magicpodscore
File metadata and controls
53 lines (43 loc) · 1.47 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
FROM ubuntu:22.04 AS system_stage
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
cmake \
gcc \
g++ \
make \
pkg-config \
ca-certificates \
doxygen \
graphviz \
libsystemd-dev \
git \
zlib1g-dev \
bluez \
libbluetooth-dev \
libpulse-dev \
libssl-dev \
&& rm -rf /var/lib/apt/lists/*
FROM system_stage AS build_stage
ADD ./src/modules/MagicPodsCore/src /app/src
ADD ./src/modules/MagicPodsCore/dependencies /app/dependencies
ADD ./src/modules/MagicPodsCore/config /app/config
ADD ./src/modules/MagicPodsCore/CMakeLists.txt /app/CMakeLists.txt
WORKDIR /app/build
RUN cmake -DCMAKE_BUILD_TYPE=Release ../
RUN cmake --build ./
FROM system_stage AS runtime_collect_stage
RUN mkdir -p /out/bin/modules /out/lib
COPY --from=build_stage /app/build/magicpodscore /out/bin/modules/magicpodscore
RUN set -eu; \
ldd /out/bin/modules/magicpodscore | awk '{if ($3 ~ /^\//) print $3; else if ($1 ~ /^\//) print $1}' | sort -u > /tmp/runtime_deps.txt; \
while IFS= read -r dep; do \
[ -n "$dep" ] || continue; \
case "$(basename "$dep")" in \
libc.so.*|libm.so.*|libpthread.so.*|libdl.so.*|librt.so.*|ld-linux-*.so.*) \
continue \
;; \
esac; \
cp -Lv "$dep" /out/lib/; \
done < /tmp/runtime_deps.txt
FROM scratch AS runtime_export_stage
COPY --from=runtime_collect_stage /out/ /