mirror of
				https://github.com/linuxkit/linuxkit.git
				synced 2025-10-31 18:04:00 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			123 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			Docker
		
	
	
	
	
	
			
		
		
	
	
			123 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			Docker
		
	
	
	
	
	
| ARG IMAGE
 | |
| FROM ${IMAGE} as ksrc
 | |
| 
 | |
| FROM linuxkit/alpine:518c2ed0f398c5508969ac5e033607201fb419ed AS build
 | |
| RUN apk update && apk upgrade -a && \
 | |
|   apk add --no-cache \
 | |
|   argp-standalone \
 | |
|   autoconf \
 | |
|   automake \
 | |
|   bison \
 | |
|   build-base \
 | |
|   clang \
 | |
|   clang-dev \
 | |
|   clang-static \
 | |
|   cmake \
 | |
|   curl \
 | |
|   flex-dev \
 | |
|   fts-dev \
 | |
|   gettext-dev \
 | |
|   git \
 | |
|   iperf3 \
 | |
|   libedit-dev \
 | |
|   libtool \
 | |
|   llvm \
 | |
|   llvm-dev \
 | |
|   llvm-static \
 | |
|   luajit-dev \
 | |
|   m4 \
 | |
|   python \
 | |
|   zlib-dev \
 | |
|   && true
 | |
| 
 | |
| RUN ln -s /usr/lib/cmake/llvm5/ /usr/lib/cmake/llvm && \
 | |
|     ln -s /usr/include/llvm5/llvm-c/ /usr/include/llvm-c && \
 | |
|     ln -s /usr/include/llvm5/llvm/ /usr/include/llvm
 | |
| 
 | |
| WORKDIR /build
 | |
| 
 | |
| COPY ./bcc.patches/ ./
 | |
| 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 && \
 | |
|     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 && \
 | |
|     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
 | |
| 
 | |
| COPY --from=ksrc /kernel-headers.tar /build
 | |
| COPY --from=ksrc /kernel-dev.tar /build
 | |
| COPY --from=ksrc /kernel.tar /build
 | |
| RUN tar xf /build/kernel-headers.tar && \
 | |
|     tar xf /build/kernel-dev.tar && \
 | |
|     tar xf /build/kernel.tar
 | |
| 
 | |
| 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/ && \
 | |
|     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:518c2ed0f398c5508969ac5e033607201fb419ed as mirror
 | |
| RUN mkdir -p /out/etc/apk && cp -r /etc/apk/* /out/etc/apk/
 | |
| RUN apk update && apk upgrade -a && \
 | |
|   apk add --no-cache --initdb -p /out \
 | |
|   busybox \
 | |
|   luajit \
 | |
|   python \
 | |
|   zlib \
 | |
|   && true
 | |
| 
 | |
| FROM scratch
 | |
| ENTRYPOINT []
 | |
| CMD []
 | |
| WORKDIR /
 | |
| ENV LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/usr/lib64
 | |
| COPY --from=mirror /out /
 | |
| COPY --from=build /out /
 |