FROM scratch as base ENV VERSION=1.36.1 ENV SRC_HASH=b8cc24c9574d809e7279c3be349795c5d5ceb6fdf19ca709f80cde50e47de314 ENV SRC_FILE=busybox-${VERSION}.tar.bz2 ENV SRC_SITE=https://busybox.net/downloads/${SRC_FILE} FROM base as fetch ADD --checksum=sha256:${SRC_HASH} ${SRC_SITE} . FROM fetch as build COPY --from=stagex/stage3 . / RUN tar -xjf ${SRC_FILE} WORKDIR busybox-${VERSION} ENV KCONFIG_NOTIMESTAMP=1 RUN --network=none <<-EOF set -eux setConfs=' CONFIG_LAST_SUPPORTED_WCHAR=0 CONFIG_STATIC=y ' unsetConfs=' CONFIG_FEATURE_SYNC_FANCY CONFIG_FEATURE_HAVE_RPC CONFIG_FEATURE_INETD_RPC CONFIG_FEATURE_UTMP CONFIG_FEATURE_WTMP ' make defconfig for conf in $unsetConfs; do sed -i \ -e "s!^$conf=.*\$!# $conf is not set!" \ .config done for confV in $setConfs; do conf="${confV%=*}" sed -i \ -e "s!^$conf=.*\$!$confV!" \ -e "s!^# $conf is not set\$!$confV!" \ .config if ! grep -q "^$confV\$" .config; then echo "$confV" >> .config fi done make oldconfig for conf in $unsetConfs; do ! grep -q "^$conf=" .config done for confV in $setConfs; do grep -q "^$confV\$" .config done make EOF FROM build as install RUN --network=none <<-EOF set -eux mkdir -p /rootfs/usr/bin cp busybox /rootfs/usr/bin cp busybox /usr/bin cd /rootfs /usr/bin/busybox --install -s usr/bin EOF RUN find /rootfs -exec touch -hcd "@0" "{}" + FROM stagex/filesystem as package COPY --from=install /rootfs/. / ENTRYPOINT ["/bin/sh"]