From a5750b2c3891dbe999d086ea62976a2b9dd8e90b Mon Sep 17 00:00:00 2001 From: Nico Neumann <33637944+neumann-nico@users.noreply.github.com> Date: Sun, 10 Dec 2023 02:25:17 +0100 Subject: [PATCH] Fix docker buildx plugin is missing --- .../actions-runner-dind-rootless.ubuntu-20.04.dockerfile | 9 +++++++++ .../actions-runner-dind-rootless.ubuntu-22.04.dockerfile | 9 +++++++++ runner/actions-runner-dind.ubuntu-20.04.dockerfile | 9 +++++++++ runner/actions-runner-dind.ubuntu-22.04.dockerfile | 9 +++++++++ runner/actions-runner.ubuntu-20.04.dockerfile | 9 +++++++++ runner/actions-runner.ubuntu-22.04.dockerfile | 9 +++++++++ 6 files changed, 54 insertions(+) diff --git a/runner/actions-runner-dind-rootless.ubuntu-20.04.dockerfile b/runner/actions-runner-dind-rootless.ubuntu-20.04.dockerfile index 1e65c8bc..2d43ae3a 100644 --- a/runner/actions-runner-dind-rootless.ubuntu-20.04.dockerfile +++ b/runner/actions-runner-dind-rootless.ubuntu-20.04.dockerfile @@ -6,6 +6,7 @@ ARG RUNNER_CONTAINER_HOOKS_VERSION # Docker and Docker Compose arguments ENV CHANNEL=stable ARG DOCKER_COMPOSE_VERSION=v2.23.0 +ARG BUILDX_VERSION=0.12.0 ARG DUMB_INIT_VERSION=1.2.5 # Other arguments @@ -149,6 +150,14 @@ RUN export ARCH=$(echo ${TARGETPLATFORM} | cut -d / -f2) \ && which docker-compose \ && docker compose version +RUN export ARCH=$(echo ${TARGETPLATFORM} | cut -d / -f2) \ + && if [ "$ARCH" = "arm64" ]; then export ARCH=aarch64 ; fi \ + && if [ "$ARCH" = "amd64" ] || [ "$ARCH" = "i386" ]; then export ARCH=x86_64 ; fi \ + && mkdir -p /usr/local/lib/docker/cli-plugins \ + && curl -fLo /usr/local/lib/docker/cli-plugins/docker-buildx \ + "https://github.com/docker/buildx/releases/download/v${BUILDX_VERSION}/buildx-v${BUILDX_VERSION}.linux-${ARCH}" \ + && chmod +x /usr/local/lib/docker/cli-plugins/docker-buildx + # Create folder structure here to avoid permission issues # when mounting the daemon.json file from a configmap. RUN mkdir -p /home/runner/.config/docker diff --git a/runner/actions-runner-dind-rootless.ubuntu-22.04.dockerfile b/runner/actions-runner-dind-rootless.ubuntu-22.04.dockerfile index 0639ccdf..a4a24453 100644 --- a/runner/actions-runner-dind-rootless.ubuntu-22.04.dockerfile +++ b/runner/actions-runner-dind-rootless.ubuntu-22.04.dockerfile @@ -6,6 +6,7 @@ ARG RUNNER_CONTAINER_HOOKS_VERSION # Docker and Docker Compose arguments ENV CHANNEL=stable ARG DOCKER_COMPOSE_VERSION=v2.23.0 +ARG BUILDX_VERSION=0.12.0 ARG DUMB_INIT_VERSION=1.2.5 ARG RUNNER_USER_UID=1001 @@ -127,6 +128,14 @@ RUN export ARCH=$(echo ${TARGETPLATFORM} | cut -d / -f2) \ && which docker-compose \ && docker compose version +RUN export ARCH=$(echo ${TARGETPLATFORM} | cut -d / -f2) \ + && if [ "$ARCH" = "arm64" ]; then export ARCH=aarch64 ; fi \ + && if [ "$ARCH" = "amd64" ] || [ "$ARCH" = "i386" ]; then export ARCH=x86_64 ; fi \ + && mkdir -p /usr/local/lib/docker/cli-plugins \ + && curl -fLo /usr/local/lib/docker/cli-plugins/docker-buildx \ + "https://github.com/docker/buildx/releases/download/v${BUILDX_VERSION}/buildx-v${BUILDX_VERSION}.linux-${ARCH}" \ + && chmod +x /usr/local/lib/docker/cli-plugins/docker-buildx + # Create folder structure here to avoid permission issues # when mounting the daemon.json file from a configmap. RUN mkdir -p /home/runner/.config/docker diff --git a/runner/actions-runner-dind.ubuntu-20.04.dockerfile b/runner/actions-runner-dind.ubuntu-20.04.dockerfile index 5213004d..ab12da17 100644 --- a/runner/actions-runner-dind.ubuntu-20.04.dockerfile +++ b/runner/actions-runner-dind.ubuntu-20.04.dockerfile @@ -7,6 +7,7 @@ ARG RUNNER_CONTAINER_HOOKS_VERSION ARG CHANNEL=stable ARG DOCKER_VERSION=24.0.7 ARG DOCKER_COMPOSE_VERSION=v2.23.0 +ARG BUILDX_VERSION=0.12.0 ARG DUMB_INIT_VERSION=1.2.5 # Use 1001 and 121 for compatibility with GitHub-hosted runners @@ -116,6 +117,14 @@ RUN export ARCH=$(echo ${TARGETPLATFORM} | cut -d / -f2) \ && which docker-compose \ && docker compose version +RUN export ARCH=$(echo ${TARGETPLATFORM} | cut -d / -f2) \ + && if [ "$ARCH" = "arm64" ]; then export ARCH=aarch64 ; fi \ + && if [ "$ARCH" = "amd64" ] || [ "$ARCH" = "i386" ]; then export ARCH=x86_64 ; fi \ + && mkdir -p /usr/local/lib/docker/cli-plugins \ + && curl -fLo /usr/local/lib/docker/cli-plugins/docker-buildx \ + "https://github.com/docker/buildx/releases/download/v${BUILDX_VERSION}/buildx-v${BUILDX_VERSION}.linux-${ARCH}" \ + && chmod +x /usr/local/lib/docker/cli-plugins/docker-buildx + # We place the scripts in `/usr/bin` so that users who extend this image can # override them with scripts of the same name placed in `/usr/local/bin`. COPY entrypoint-dind.sh startup.sh logger.sh wait.sh graceful-stop.sh update-status /usr/bin/ diff --git a/runner/actions-runner-dind.ubuntu-22.04.dockerfile b/runner/actions-runner-dind.ubuntu-22.04.dockerfile index 9e9ec866..388fb3e3 100644 --- a/runner/actions-runner-dind.ubuntu-22.04.dockerfile +++ b/runner/actions-runner-dind.ubuntu-22.04.dockerfile @@ -7,6 +7,7 @@ ARG RUNNER_CONTAINER_HOOKS_VERSION ARG CHANNEL=stable ARG DOCKER_VERSION=24.0.7 ARG DOCKER_COMPOSE_VERSION=v2.23.0 +ARG BUILDX_VERSION=0.12.0 ARG DUMB_INIT_VERSION=1.2.5 ARG RUNNER_USER_UID=1001 ARG DOCKER_GROUP_GID=121 @@ -92,6 +93,14 @@ RUN export ARCH=$(echo ${TARGETPLATFORM} | cut -d / -f2) \ && which docker-compose \ && docker compose version +RUN export ARCH=$(echo ${TARGETPLATFORM} | cut -d / -f2) \ + && if [ "$ARCH" = "arm64" ]; then export ARCH=aarch64 ; fi \ + && if [ "$ARCH" = "amd64" ] || [ "$ARCH" = "i386" ]; then export ARCH=x86_64 ; fi \ + && mkdir -p /usr/local/lib/docker/cli-plugins \ + && curl -fLo /usr/local/lib/docker/cli-plugins/docker-buildx \ + "https://github.com/docker/buildx/releases/download/v${BUILDX_VERSION}/buildx-v${BUILDX_VERSION}.linux-${ARCH}" \ + && chmod +x /usr/local/lib/docker/cli-plugins/docker-buildx + # We place the scripts in `/usr/bin` so that users who extend this image can # override them with scripts of the same name placed in `/usr/local/bin`. COPY entrypoint-dind.sh startup.sh logger.sh wait.sh graceful-stop.sh update-status /usr/bin/ diff --git a/runner/actions-runner.ubuntu-20.04.dockerfile b/runner/actions-runner.ubuntu-20.04.dockerfile index 142ca3ac..81c81db2 100644 --- a/runner/actions-runner.ubuntu-20.04.dockerfile +++ b/runner/actions-runner.ubuntu-20.04.dockerfile @@ -7,6 +7,7 @@ ARG RUNNER_CONTAINER_HOOKS_VERSION ARG CHANNEL=stable ARG DOCKER_VERSION=24.0.7 ARG DOCKER_COMPOSE_VERSION=v2.23.0 +ARG BUILDX_VERSION=0.12.0 ARG DUMB_INIT_VERSION=1.2.5 # Use 1001 and 121 for compatibility with GitHub-hosted runners @@ -113,6 +114,14 @@ RUN export ARCH=$(echo ${TARGETPLATFORM} | cut -d / -f2) \ && which docker-compose \ && docker compose version +RUN export ARCH=$(echo ${TARGETPLATFORM} | cut -d / -f2) \ + && if [ "$ARCH" = "arm64" ]; then export ARCH=aarch64 ; fi \ + && if [ "$ARCH" = "amd64" ] || [ "$ARCH" = "i386" ]; then export ARCH=x86_64 ; fi \ + && mkdir -p /usr/local/lib/docker/cli-plugins \ + && curl -fLo /usr/local/lib/docker/cli-plugins/docker-buildx \ + "https://github.com/docker/buildx/releases/download/v${BUILDX_VERSION}/buildx-v${BUILDX_VERSION}.linux-${ARCH}" \ + && chmod +x /usr/local/lib/docker/cli-plugins/docker-buildx + # We place the scripts in `/usr/bin` so that users who extend this image can # override them with scripts of the same name placed in `/usr/local/bin`. COPY entrypoint.sh startup.sh logger.sh graceful-stop.sh update-status /usr/bin/ diff --git a/runner/actions-runner.ubuntu-22.04.dockerfile b/runner/actions-runner.ubuntu-22.04.dockerfile index a8d31e39..0cf4861c 100644 --- a/runner/actions-runner.ubuntu-22.04.dockerfile +++ b/runner/actions-runner.ubuntu-22.04.dockerfile @@ -7,6 +7,7 @@ ARG RUNNER_CONTAINER_HOOKS_VERSION ARG CHANNEL=stable ARG DOCKER_VERSION=24.0.7 ARG DOCKER_COMPOSE_VERSION=v2.23.0 +ARG BUILDX_VERSION=0.12.0 ARG DUMB_INIT_VERSION=1.2.5 ARG RUNNER_USER_UID=1001 ARG DOCKER_GROUP_GID=121 @@ -90,6 +91,14 @@ RUN export ARCH=$(echo ${TARGETPLATFORM} | cut -d / -f2) \ && which docker-compose \ && docker compose version +RUN export ARCH=$(echo ${TARGETPLATFORM} | cut -d / -f2) \ + && if [ "$ARCH" = "arm64" ]; then export ARCH=aarch64 ; fi \ + && if [ "$ARCH" = "amd64" ] || [ "$ARCH" = "i386" ]; then export ARCH=x86_64 ; fi \ + && mkdir -p /usr/local/lib/docker/cli-plugins \ + && curl -fLo /usr/local/lib/docker/cli-plugins/docker-buildx \ + "https://github.com/docker/buildx/releases/download/v${BUILDX_VERSION}/buildx-v${BUILDX_VERSION}.linux-${ARCH}" \ + && chmod +x /usr/local/lib/docker/cli-plugins/docker-buildx + # We place the scripts in `/usr/bin` so that users who extend this image can # override them with scripts of the same name placed in `/usr/local/bin`. COPY entrypoint.sh startup.sh logger.sh graceful-stop.sh update-status /usr/bin/