ebpf_exporter
/
Dockerfile
55 строк · 1.6 Кб
1# libbpf
2FROM debian:bookworm as libbpf_builder
3
4RUN apt-get update && \
5apt-get install -y --no-install-recommends git ca-certificates gcc make pkg-config libelf-dev
6
7COPY ./ /build/ebpf_exporter
8
9RUN make -j $(nproc) -C /build/ebpf_exporter libbpf.a && \
10tar -C /build/ebpf_exporter/libbpf/dest -czf /build/libbpf.tar.gz .
11
12# ebpf_exporter binary
13FROM golang:1.22-bookworm as ebpf_exporter_builder
14
15RUN apt-get update && \
16apt-get install -y libelf-dev pci.ids
17
18COPY --from=libbpf_builder /build/ebpf_exporter/libbpf /build/ebpf_exporter/libbpf
19
20COPY ./ /build/ebpf_exporter
21
22RUN make -j $(nproc) -C /build/ebpf_exporter build && \
23/build/ebpf_exporter/ebpf_exporter --version
24
25
26# examples
27FROM debian:bookworm as examples_builder
28
29RUN apt-get update && \
30apt-get install -y clang make
31
32COPY --from=libbpf_builder /build/ebpf_exporter/libbpf /build/ebpf_exporter/libbpf
33
34COPY ./ /build/ebpf_exporter
35
36RUN make -j $(nproc) -C /build/ebpf_exporter/examples
37
38
39# ebpf_exporter release image
40FROM gcr.io/distroless/static-debian11 as ebpf_exporter
41
42COPY --from=ebpf_exporter_builder /build/ebpf_exporter/ebpf_exporter /ebpf_exporter
43COPY --from=ebpf_exporter_builder /usr/share/misc/pci.ids /usr/share/misc/pci.ids
44
45ENTRYPOINT ["/ebpf_exporter"]
46
47
48# ebpf_exporter release image with examples bundled
49FROM gcr.io/distroless/static-debian11 as ebpf_exporter_with_examples
50
51COPY --from=ebpf_exporter_builder /build/ebpf_exporter/ebpf_exporter /ebpf_exporter
52COPY --from=ebpf_exporter_builder /usr/share/misc/pci.ids /usr/share/misc/pci.ids
53COPY --from=examples_builder /build/ebpf_exporter/examples /examples
54
55ENTRYPOINT ["/ebpf_exporter"]
56