FROM scratch as base ARG ARCH=x86_64 ENV VERSION=3.4.6 ENV SRC_HASH=b0dea9df23c863a7a50e825440f3ebffabd65df1497108e5d437747843895a4e ENV SRC_FILE=libffi-${VERSION}.tar.gz ENV SRC_SITE=https://github.com/libffi/libffi/releases/download/v${VERSION}/${SRC_FILE} FROM base as fetch ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} . FROM fetch as build COPY --from=stagex/busybox . / COPY --from=stagex/binutils . / COPY --from=stagex/musl . / COPY --from=stagex/make . / COPY --from=stagex/gcc . / RUN tar -xf ${SRC_FILE} WORKDIR libffi-${VERSION} RUN --network=none <<-EOF set -ex ./configure \ --build=${ARCH}-linux-musl \ --host=${ARCH}-linux-musl \ --prefix=/usr \ --enable-pax_emutrap \ --enable-portable-binary \ --disable-exec-static-tramp \ --without-gcc-arch make -j "$(nproc)" EOF FROM build as install RUN --network=none <<-EOF set -eu make DESTDIR="/rootfs" install mv /rootfs/usr/lib64/* /rootfs/usr/lib/ rm -rf /rootfs/usr/lib64 find /rootfs -exec touch -hcd "@0" "{}" + EOF FROM stagex/filesystem as package COPY --from=install /rootfs/. /