mirror of
https://github.com/linuxkit/linuxkit.git
synced 2025-07-25 03:34:58 +00:00
Merge pull request #3230 from simar7/bpftrace-pkg
pkg/bpftrace: Add bpftrace as a core pkg
This commit is contained in:
commit
b987627a1f
37
pkg/bpftrace/Dockerfile
Normal file
37
pkg/bpftrace/Dockerfile
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
FROM linuxkit/alpine:ace75d0ec6978762d445083d6c8c6336bdb658ed AS build
|
||||||
|
RUN apk add --update \
|
||||||
|
bison \
|
||||||
|
build-base \
|
||||||
|
clang-dev \
|
||||||
|
clang-static \
|
||||||
|
cmake \
|
||||||
|
elfutils-dev \
|
||||||
|
flex-dev \
|
||||||
|
git \
|
||||||
|
linux-headers \
|
||||||
|
llvm5-dev \
|
||||||
|
llvm5-static \
|
||||||
|
zlib-dev
|
||||||
|
|
||||||
|
# Put LLVM directories where CMake expects them to be
|
||||||
|
RUN ln -s /usr/lib/cmake/llvm5 /usr/lib/cmake/llvm
|
||||||
|
RUN ln -s /usr/include/llvm5/llvm /usr/include/llvm
|
||||||
|
RUN ln -s /usr/include/llvm5/llvm-c /usr/include/llvm-c
|
||||||
|
|
||||||
|
ENV GITREPO=https://github.com/iovisor/bpftrace.git
|
||||||
|
ENV COMMIT=8f7f8214d7dd7bc25b7740a3c0e9a580a89e0244
|
||||||
|
ENV STATIC_LINKING=on
|
||||||
|
ENV RUN_TESTS=0
|
||||||
|
|
||||||
|
RUN git clone ${GITREPO} /bpftrace \
|
||||||
|
&& cd /bpftrace/ \
|
||||||
|
&& mkdir -p /bpftrace/build \
|
||||||
|
&& git checkout ${COMMIT} \
|
||||||
|
&& chmod +x /bpftrace/docker/build.sh \
|
||||||
|
&& /bpftrace/docker/build.sh /bpftrace/build Release -j$(nproc)
|
||||||
|
|
||||||
|
FROM scratch
|
||||||
|
ENTRYPOINT []
|
||||||
|
CMD []
|
||||||
|
WORKDIR /
|
||||||
|
COPY --from=build /bpftrace/build/src/bpftrace /usr/bin/bpftrace
|
4
pkg/bpftrace/build.yml
Normal file
4
pkg/bpftrace/build.yml
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
image: bpftrace
|
||||||
|
network: true
|
||||||
|
arches:
|
||||||
|
- amd64
|
9
test/cases/040_packages/002_bpftrace/check.sh
Normal file
9
test/cases/040_packages/002_bpftrace/check.sh
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
nsenter -t1 -m -- /usr/bin/bpftrace -l
|
||||||
|
if [ "$?" -ne "0" ]; then
|
||||||
|
printf "bpftrace test suite FAILED\n" >&1
|
||||||
|
exit 1
|
||||||
|
fi;
|
||||||
|
|
||||||
|
printf "bpftrace test suite PASSED\n" >&1
|
23
test/cases/040_packages/002_bpftrace/test.sh
Normal file
23
test/cases/040_packages/002_bpftrace/test.sh
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
# SUMMARY: Check that the bpftrace package works
|
||||||
|
# REPEAT:
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# Source libraries. Uncomment if needed/defined
|
||||||
|
#. "${RT_LIB}"
|
||||||
|
. "${RT_PROJECT_ROOT}/_lib/lib.sh"
|
||||||
|
NAME=bpftrace
|
||||||
|
|
||||||
|
clean_up() {
|
||||||
|
rm -rf ${NAME}-*
|
||||||
|
}
|
||||||
|
trap clean_up EXIT
|
||||||
|
|
||||||
|
# Test code goes here
|
||||||
|
linuxkit build -format kernel+initrd -name "${NAME}" test.yml
|
||||||
|
RESULT="$(linuxkit run ${NAME})"
|
||||||
|
echo "${RESULT}"
|
||||||
|
echo "${RESULT}" | grep -q "suite PASSED"
|
||||||
|
|
||||||
|
exit 0
|
29
test/cases/040_packages/002_bpftrace/test.yml
Normal file
29
test/cases/040_packages/002_bpftrace/test.yml
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
kernel:
|
||||||
|
image: linuxkit/kernel:4.14.86
|
||||||
|
cmdline: "console=ttyS0 console=ttyAMA0"
|
||||||
|
init:
|
||||||
|
- linuxkit/init:v0.5
|
||||||
|
- linuxkit/runc:v0.5
|
||||||
|
- linuxkit/bpftrace:67b5c3b4f13a4acf22eab8f422091e1efc06852d
|
||||||
|
onboot:
|
||||||
|
- name: bpftrace-test
|
||||||
|
image: alpine:3.8
|
||||||
|
binds:
|
||||||
|
- /check.sh:/check.sh
|
||||||
|
command: ["sh", "./check.sh"]
|
||||||
|
pid: host
|
||||||
|
net: host
|
||||||
|
ipc: host
|
||||||
|
capabilities:
|
||||||
|
- all
|
||||||
|
- name: poweroff
|
||||||
|
image: linuxkit/poweroff:2687ed712690766b8156a77ac600005b532d2c7d
|
||||||
|
command: ["/bin/sh", "/poweroff.sh", "10"]
|
||||||
|
files:
|
||||||
|
- path: check.sh
|
||||||
|
source: ./check.sh
|
||||||
|
trust:
|
||||||
|
org:
|
||||||
|
- linuxkit
|
||||||
|
image:
|
||||||
|
- alpine:3.8
|
Loading…
Reference in New Issue
Block a user