From 4792fa5015761c3f29a39275fb2eb63956ba8040 Mon Sep 17 00:00:00 2001 From: Rolf Neugebauer Date: Fri, 17 Aug 2018 11:18:38 +0100 Subject: [PATCH] kernel: Tidy up Dockerfile.bcc Use less layers and group it a little better. There should be no real code change here. Signed-off-by: Rolf Neugebauer --- kernel/Dockerfile.bcc | 102 +++++++++++++++++++++++------------------- 1 file changed, 56 insertions(+), 46 deletions(-) diff --git a/kernel/Dockerfile.bcc b/kernel/Dockerfile.bcc index 0085b7658..60900674b 100644 --- a/kernel/Dockerfile.bcc +++ b/kernel/Dockerfile.bcc @@ -35,63 +35,73 @@ RUN ln -s /usr/lib/cmake/llvm5/ /usr/lib/cmake/llvm && \ ln -s /usr/include/llvm5/llvm/ /usr/include/llvm WORKDIR /build + COPY ./bcc.patches/ ./ -RUN mv error.h /usr/include/ -RUN mv cdefs.h /usr/include/sys/ +RUN mv error.h /usr/include/ && \ + mv cdefs.h /usr/include/sys/ + ENV ELFUTILS_VERSION=0.165 ENV ELFUTILS_SHA256="a7fc9277192caaa5f30b47e8c0518dbcfd8c4a19c6493a63d511d804290ce972" -RUN curl -sSL -O https://fedorahosted.org/releases/e/l/elfutils/0.165/elfutils-$ELFUTILS_VERSION.tar.bz2 - -RUN echo "${ELFUTILS_SHA256} /build/elfutils-$ELFUTILS_VERSION.tar.bz2" | sha256sum -c - && \ - tar xjf elfutils-$ELFUTILS_VERSION.tar.bz2 && \ - cd elfutils-$ELFUTILS_VERSION && \ - patch -p1 < ../100-musl-compat.patch && \ - patch -p0 < ../decl.patch && \ - patch -p0 < ../intl.patch +RUN curl -sSL -O https://fedorahosted.org/releases/e/l/elfutils/0.165/elfutils-$ELFUTILS_VERSION.tar.bz2 && \ + echo "${ELFUTILS_SHA256} /build/elfutils-$ELFUTILS_VERSION.tar.bz2" | sha256sum -c - && \ + tar xjf elfutils-$ELFUTILS_VERSION.tar.bz2 && \ + cd elfutils-$ELFUTILS_VERSION && \ + patch -p1 < ../100-musl-compat.patch && \ + patch -p0 < ../decl.patch && \ + patch -p0 < ../intl.patch + ENV BCC_COMMIT=6972806729da00ecda0235abac61d66c8fad7fad -RUN git clone https://github.com/iovisor/bcc.git && cd bcc && git checkout $BCC_COMMIT -RUN cd bcc && patch -p0 < ../bcc-gnuism.patch && patch -p0 < ../bcc-lua.patch +RUN git clone https://github.com/iovisor/bcc.git && \ + cd bcc && \ + git checkout $BCC_COMMIT && \ + patch -p0 < ../bcc-gnuism.patch && patch -p0 < ../bcc-lua.patch + ENV LJSYSCALL_COMMIT=e587f8c55aad3955dddab3a4fa6c1968037b5c6e -RUN git clone https://github.com/justincormack/ljsyscall.git && cd ljsyscall && git checkout $LJSYSCALL_COMMIT +RUN git clone https://github.com/justincormack/ljsyscall.git && \ + cd ljsyscall && \ + git checkout $LJSYSCALL_COMMIT COPY --from=ksrc /kernel-headers.tar /build -RUN tar xf /build/kernel-headers.tar - COPY --from=ksrc /kernel-dev.tar /build -RUN tar xf /build/kernel-dev.tar - COPY --from=ksrc /kernel.tar /build -RUN tar xf /build/kernel.tar +RUN tar xf /build/kernel-headers.tar && \ + tar xf /build/kernel-dev.tar && \ + tar xf /build/kernel.tar -RUN cd /build RUN cd elfutils-$ELFUTILS_VERSION && \ - aclocal && \ - automake && \ - ./configure --prefix=/usr CFLAGS=-Wno-strict-aliasing && \ - make -C libelf && make -C libelf install -RUN mkdir -p bcc/build && cd bcc/build && \ - cmake .. -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON -DCMAKE_C_FLAGS="-I/build/usr/include" -DCMAKE_CXX_FLAGS="-I/build/usr/include" -DCMAKE_INSTALL_PREFIX=/usr -DLUAJIT_INCLUDE_DIR=/usr/include/luajit-2.1 && \ - make && \ - make install -RUN mkdir -p /usr/local/share/lua/5.1/ && cd ljsyscall && cp -a *.lua syscall /usr/local/share/lua/5.1/ -RUN mkdir -p /out/usr/ -RUN cp -a /build/usr/src /out/usr/ -RUN cp -a /build/usr/include /out/usr -RUN mkdir -p /out/usr/lib -RUN cp -a /usr/lib/libelf* /out/usr/lib/ -RUN cp -a /usr/lib/libstdc* /out/usr/lib/ -RUN cp -a /usr/lib/libintl* /out/usr/lib/ -RUN cp -a /usr/lib64/* /out/usr/lib/ -RUN mkdir -p /out/usr/lib/python2.7 -RUN cp -a /usr/lib/python2.7/site-packages /out/usr/lib/python2.7/ -RUN mkdir -p /out/usr/share -RUN cp -a /usr/share/bcc /out/usr/share/ -RUN mkdir -p /out/usr/bin -RUN cp -a /usr/bin/bcc-lua /out/usr/bin/ -RUN mkdir -p /out/usr/local/share/ -RUN cp -a /usr/local/share/lua /out/usr/local/share/ + aclocal && \ + automake && \ + ./configure --prefix=/usr CFLAGS=-Wno-strict-aliasing && \ + make -C libelf && make -C libelf install -ENV LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/usr/lib64 +RUN mkdir -p bcc/build && cd bcc/build && \ + cmake .. -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON \ + -DCMAKE_C_FLAGS="-I/build/usr/include" \ + -DCMAKE_CXX_FLAGS="-I/build/usr/include" \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DLUAJIT_INCLUDE_DIR=/usr/include/luajit-2.1 && \ + make && \ + make install + +RUN mkdir -p /usr/local/share/lua/5.1/ && \ + cd ljsyscall && \ + cp -a *.lua syscall /usr/local/share/lua/5.1/ +RUN mkdir -p /out/usr/ && \ + cp -a /build/usr/src /out/usr/ && \ + cp -a /build/usr/include /out/usr +RUN mkdir -p /out/usr/lib && \ + cp -a /usr/lib/libelf* /out/usr/lib/ && \ + cp -a /usr/lib/libstdc* /out/usr/lib/ && \ + cp -a /usr/lib/libintl* /out/usr/lib/ && \ + cp -a /usr/lib64/* /out/usr/lib/ +RUN mkdir -p /out/usr/lib/python2.7 && \ + cp -a /usr/lib/python2.7/site-packages /out/usr/lib/python2.7/ +RUN mkdir -p /out/usr/share && \ + cp -a /usr/share/bcc /out/usr/share/ +RUN mkdir -p /out/usr/bin && \ + cp -a /usr/bin/bcc-lua /out/usr/bin/ +RUN mkdir -p /out/usr/local/share/ && \ + cp -a /usr/local/share/lua /out/usr/local/share/ FROM linuxkit/alpine:8a89682421abf0d886d777235a05f4a04a736df2 as mirror RUN mkdir -p /out/etc/apk && cp -r /etc/apk/* /out/etc/apk/ @@ -107,6 +117,6 @@ FROM scratch ENTRYPOINT [] CMD [] WORKDIR / +ENV LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/usr/lib64 COPY --from=mirror /out / COPY --from=build /out / -