From ef7ff3a963ecdcdade9ce5339acb828173478692 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matej=20Ba=C4=8Do?= Date: Thu, 15 Jan 2026 12:06:03 +0100 Subject: [PATCH 1/2] Customize busybox --- Dockerfile | 22 ++++++++++++++++++++++ tests.yaml | 4 ++++ 2 files changed, 26 insertions(+) diff --git a/Dockerfile b/Dockerfile index e753e3c..e338663 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,5 +1,26 @@ ARG BASEIMAGE="php:8.4.11-cli-alpine3.22" +# Update max buffer length for /bin/sh, to allow paste larger than 2k characters +FROM $BASEIMAGE AS busybox + +ENV BUSYBOX_VERSION="1.37.0" \ + MAX_PASTE_LENGTH="65536" + +RUN apk add --no-cache openssl-dev gcc perl musl-dev make linux-headers wget + +RUN wget https://busybox.net/downloads/busybox-${BUSYBOX_VERSION}.tar.bz2 && \ + tar xf busybox-${BUSYBOX_VERSION}.tar.bz2 && \ + mv busybox-${BUSYBOX_VERSION} busybox + +WORKDIR /busybox + +RUN make defconfig && \ + sed -i 's/CONFIG_FEATURE_EDITING_MAX_LEN=.*/CONFIG_FEATURE_EDITING_MAX_LEN=8192/' .config && \ + sed -i 's/CONFIG_TC=y/CONFIG_TC=n/' .config && \ + yes "" | make oldconfig + +RUN make -j$(nproc) + FROM $BASEIMAGE AS compile ENV PHP_REDIS_VERSION="6.2.0" \ @@ -210,6 +231,7 @@ RUN \ WORKDIR /usr/src/code +COPY --from=busybox /busybox/busybox /bin/busybox COPY --from=swoole /usr/local/lib/php/extensions/no-debug-non-zts-20240924/swoole.so /usr/local/lib/php/extensions/no-debug-non-zts-20240924/ COPY --from=redis /usr/local/lib/php/extensions/no-debug-non-zts-20240924/redis.so /usr/local/lib/php/extensions/no-debug-non-zts-20240924/ COPY --from=imagick /usr/local/lib/php/extensions/no-debug-non-zts-20240924/imagick.so /usr/local/lib/php/extensions/no-debug-non-zts-20240924/ diff --git a/tests.yaml b/tests.yaml index 276f1f6..1fed885 100644 --- a/tests.yaml +++ b/tests.yaml @@ -1,6 +1,10 @@ schemaVersion: '2.0.0' commandTests: + - name: 'Busybox command' + command: "busybox" + args: ["whoami"] + expectedOutput: ["root"] - name: 'Imagemagick command' command: "magick" args: ["--version"] From 921b966e7b5ee2302a29f7446c21f6a3e788f6b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matej=20Ba=C4=8Do?= Date: Thu, 15 Jan 2026 12:17:52 +0100 Subject: [PATCH 2/2] Fix build --- Dockerfile | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/Dockerfile b/Dockerfile index e338663..aae920d 100644 --- a/Dockerfile +++ b/Dockerfile @@ -3,10 +3,10 @@ ARG BASEIMAGE="php:8.4.11-cli-alpine3.22" # Update max buffer length for /bin/sh, to allow paste larger than 2k characters FROM $BASEIMAGE AS busybox -ENV BUSYBOX_VERSION="1.37.0" \ +ENV BUSYBOX_VERSION="1.36.1" \ MAX_PASTE_LENGTH="65536" -RUN apk add --no-cache openssl-dev gcc perl musl-dev make linux-headers wget +RUN apk add --no-cache busybox-extras build-base openssl-dev gcc perl musl-dev make linux-headers wget RUN wget https://busybox.net/downloads/busybox-${BUSYBOX_VERSION}.tar.bz2 && \ tar xf busybox-${BUSYBOX_VERSION}.tar.bz2 && \ @@ -16,7 +16,6 @@ WORKDIR /busybox RUN make defconfig && \ sed -i 's/CONFIG_FEATURE_EDITING_MAX_LEN=.*/CONFIG_FEATURE_EDITING_MAX_LEN=8192/' .config && \ - sed -i 's/CONFIG_TC=y/CONFIG_TC=n/' .config && \ yes "" | make oldconfig RUN make -j$(nproc)