mirror of
https://github.com/linuxkit/linuxkit.git
synced 2025-10-11 14:44:16 +00:00
The build of the perf utility has been quite bothersome, with different arches and kernel versions failing. Since we now have the ful kernel source in the package, factor out the actual build into Dockerfile.perf Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
44 lines
865 B
Docker
44 lines
865 B
Docker
# This Dockerfile extracts the source code and headers from a kernel package,
|
|
# builds the perf utility, and places it into a scratch image
|
|
ARG IMAGE
|
|
FROM ${IMAGE} AS ksrc
|
|
|
|
FROM linuxkit/alpine:518c2ed0f398c5508969ac5e033607201fb419ed AS build
|
|
RUN apk add \
|
|
argp-standalone \
|
|
bash \
|
|
bc \
|
|
binutils-dev \
|
|
bison \
|
|
build-base \
|
|
diffutils \
|
|
flex \
|
|
gmp-dev \
|
|
installkernel \
|
|
kmod \
|
|
libelf-dev \
|
|
mpc1-dev \
|
|
mpfr-dev \
|
|
sed \
|
|
tar \
|
|
xz \
|
|
xz-dev \
|
|
zlib-dev
|
|
|
|
COPY --from=ksrc /linux.tar.xz /kernel-headers.tar /
|
|
RUN tar xf linux.tar.xz && \
|
|
tar xf kernel-headers.tar
|
|
|
|
WORKDIR /linux
|
|
|
|
RUN mkdir -p /out && \
|
|
make -C tools/perf LDFLAGS=-static && \
|
|
strip tools/perf/perf && \
|
|
cp tools/perf/perf /out
|
|
|
|
FROM scratch
|
|
ENTRYPOINT []
|
|
CMD []
|
|
WORKDIR /
|
|
COPY --from=build /out/perf /usr/bin/perf
|