FROM jenkins/inbound-agent:latest-alpine
USER root
RUN apk update && apk add -u libcurl curl # buildkit
ARG DOCKER_VERSION=24.0.6
ARG DOCKER_COMPOSE_VERSION=2.21.0

RUN set -eux; apkArch="$(apk --print-arch)"; case "$apkArch" in 'x86_64') url='https://download.docker.com/linux/static/stable/x86_64/docker-24.0.6.tgz'; ;; 'armhf') url='https://download.docker.com/linux/static/stable/armel/docker-24.0.6.tgz'; ;; 'armv7') url='https://download.docker.com/linux/static/stable/armhf/docker-24.0.6.tgz'; ;; 'aarch64') url='https://download.docker.com/linux/static/stable/aarch64/docker-24.0.6.tgz'; ;; *) echo >&2 "error: unsupported 'docker.tgz' architecture ($apkArch)"; exit 1 ;; esac; wget -O 'docker.tgz' "$url"; tar --extract --file docker.tgz --strip-components 1 --directory /usr/local/bin/ --no-same-owner 'docker/docker' ; rm docker.tgz; docker --version # buildkit

RUN set -eux; apkArch="$(apk --print-arch)"; case "$apkArch" in 'x86_64') url='https://github.com/docker/buildx/releases/download/v0.11.2/buildx-v0.11.2.linux-amd64'; sha256='311568ee69715abc46163fd688e56c77ab0144ff32e116d0f293bfc3470e75b7'; ;; 'armhf') url='https://github.com/docker/buildx/releases/download/v0.11.2/buildx-v0.11.2.linux-arm-v6'; sha256='c1bab0c7374406d5069f60b291971d71161fbd3c00e8a8fb1b68b9053eda8a4e'; ;; 'armv7') url='https://github.com/docker/buildx/releases/download/v0.11.2/buildx-v0.11.2.linux-arm-v7'; sha256='4defdf463ca2516d3f58fef69a6f78cbbb8baf16d936cdfc54df4a4be0d48f7f'; ;; 'aarch64') url='https://github.com/docker/buildx/releases/download/v0.11.2/buildx-v0.11.2.linux-arm64'; sha256='565e36085a35bba5104f37365ba796c111338eea1a0902b3a7ff42e2e1248815'; ;; 'ppc64le') url='https://github.com/docker/buildx/releases/download/v0.11.2/buildx-v0.11.2.linux-ppc64le'; sha256='c5f5cb9957890873a537c7ff5c4eef36132339622baeabb37a4b9b7251ddf836'; ;; 'riscv64') url='https://github.com/docker/buildx/releases/download/v0.11.2/buildx-v0.11.2.linux-riscv64'; sha256='c0adc4b4625f7e3df7dcdec840568f918673f2ed4bcd03ca1e63ea2a5627ca35'; ;; 's390x') url='https://github.com/docker/buildx/releases/download/v0.11.2/buildx-v0.11.2.linux-s390x'; sha256='02916c76c3872fd0b3fa57e71403fee92b6be10f350b96a5ff99e7914dd277b8'; ;; *) echo >&2 "warning: unsupported 'docker-buildx' architecture ($apkArch); skipping"; exit 0 ;; esac; wget -O 'docker-buildx' "$url"; echo "$sha256 *"'docker-buildx' | sha256sum -c -; plugin='/usr/local/libexec/docker/cli-plugins/docker-buildx'; mkdir -p "$(dirname "$plugin")"; mv -vT 'docker-buildx' "$plugin"; chmod +x "$plugin"; docker buildx version # buildkit

RUN set -eux; apkArch="$(apk --print-arch)"; case "$apkArch" in 'x86_64') url='https://github.com/docker/compose/releases/download/v2.21.0/docker-compose-linux-x86_64'; sha256='08e549924823e97a3ea303c2309b812dfd5223b8be5ff96fe41bf75181ce0977'; ;; 'armhf') url='https://github.com/docker/compose/releases/download/v2.21.0/docker-compose-linux-armv6'; sha256='058ec96bc81ddeb317d160a6dea5bd8ac65dc2e90afff86bcc31f3f818f3fc5a'; ;; 'armv7') url='https://github.com/docker/compose/releases/download/v2.21.0/docker-compose-linux-armv7'; sha256='d46dbbbf5723c45125277c7c75b757b22679962707b2276a6d52f35964583c42'; ;; 'aarch64') url='https://github.com/docker/compose/releases/download/v2.21.0/docker-compose-linux-aarch64'; sha256='5daf8d1a04cd649ad4a64221d0ca0cffcce33c740e60d5b15698545ce6d0436b'; ;; 'ppc64le') url='https://github.com/docker/compose/releases/download/v2.21.0/docker-compose-linux-ppc64le'; sha256='fadbb72890d72f1246b213c453ec90cf494f4f8ea3dda2f63678de53a7e97c15'; ;; 'riscv64') url='https://github.com/docker/compose/releases/download/v2.21.0/docker-compose-linux-riscv64'; sha256='cd01536476864bd97c6ce3dfd317730535e51b2e252e9468de0379cc84298187'; ;; 's390x') url='https://github.com/docker/compose/releases/download/v2.21.0/docker-compose-linux-s390x'; sha256='dfa8ab3ccc83311a2a4fddc43654de06c13cadc7caf629a0ddeceabd24bb6308'; ;; *) echo >&2 "warning: unsupported 'docker-compose' architecture ($apkArch); skipping"; exit 0 ;; esac; wget -O 'docker-compose' "$url"; echo "$sha256 *"'docker-compose' | sha256sum -c -; plugin='/usr/local/libexec/docker/cli-plugins/docker-compose'; mkdir -p "$(dirname "$plugin")"; mv -vT 'docker-compose' "$plugin"; chmod +x "$plugin"; ln -sv "$plugin" /usr/local/bin/; docker-compose --version; docker compose version # buildkit

RUN touch /debug-flag # buildkit

USER jenkins
ENTRYPOINT ["/usr/local/bin/jenkins-agent"]