xref: /aosp_15_r20/external/bpftool/Dockerfile (revision 858ea5e570667251cdc31d3fe7b846b591105938)
1*858ea5e5SAndroid Build Coastguard Worker# With this Dockerfile, you can create a container image:
2*858ea5e5SAndroid Build Coastguard Worker#     $ docker build -f Dockerfile -t bpftool .
3*858ea5e5SAndroid Build Coastguard Worker# And then use it:
4*858ea5e5SAndroid Build Coastguard Worker#     $ docker run --rm -ti --privileged --pid=host bpftool prog
5*858ea5e5SAndroid Build Coastguard Worker
6*858ea5e5SAndroid Build Coastguard Worker# hadolint global ignore=DL3008
7*858ea5e5SAndroid Build Coastguard Worker
8*858ea5e5SAndroid Build Coastguard WorkerFROM ubuntu:22.04 as builder
9*858ea5e5SAndroid Build Coastguard Worker
10*858ea5e5SAndroid Build Coastguard WorkerRUN \
11*858ea5e5SAndroid Build Coastguard Worker	export DEBIAN_FRONTEND=noninteractive && \
12*858ea5e5SAndroid Build Coastguard Worker	apt-get update && \
13*858ea5e5SAndroid Build Coastguard Worker	apt-get -y install --no-install-recommends \
14*858ea5e5SAndroid Build Coastguard Worker		build-essential \
15*858ea5e5SAndroid Build Coastguard Worker		libelf-dev \
16*858ea5e5SAndroid Build Coastguard Worker		libz-dev \
17*858ea5e5SAndroid Build Coastguard Worker		libcap-dev \
18*858ea5e5SAndroid Build Coastguard Worker		clang llvm llvm-dev lld \
19*858ea5e5SAndroid Build Coastguard Worker		binutils-dev \
20*858ea5e5SAndroid Build Coastguard Worker		pkg-config && \
21*858ea5e5SAndroid Build Coastguard Worker	rm -rf /var/lib/apt/lists/*
22*858ea5e5SAndroid Build Coastguard Worker
23*858ea5e5SAndroid Build Coastguard WorkerCOPY . /src
24*858ea5e5SAndroid Build Coastguard WorkerRUN \
25*858ea5e5SAndroid Build Coastguard Worker	make -C /src/src clean && \
26*858ea5e5SAndroid Build Coastguard Worker	make -C /src/src -j "$(nproc)"
27*858ea5e5SAndroid Build Coastguard Worker
28*858ea5e5SAndroid Build Coastguard WorkerFROM ubuntu:22.04
29*858ea5e5SAndroid Build Coastguard WorkerRUN \
30*858ea5e5SAndroid Build Coastguard Worker	export DEBIAN_FRONTEND=noninteractive && \
31*858ea5e5SAndroid Build Coastguard Worker	apt-get update && \
32*858ea5e5SAndroid Build Coastguard Worker	apt-get -y install --no-install-recommends \
33*858ea5e5SAndroid Build Coastguard Worker		libelf1 \
34*858ea5e5SAndroid Build Coastguard Worker		llvm && \
35*858ea5e5SAndroid Build Coastguard Worker	rm -rf /var/lib/apt/lists/*
36*858ea5e5SAndroid Build Coastguard Worker
37*858ea5e5SAndroid Build Coastguard WorkerCOPY --from=builder /src/src/bpftool /bin/bpftool
38*858ea5e5SAndroid Build Coastguard Worker
39*858ea5e5SAndroid Build Coastguard WorkerENTRYPOINT ["/bin/bpftool"]
40