From e5bb130fdadfb7ab786515806b69754178ba5f72 Mon Sep 17 00:00:00 2001 From: Yusuke Kuoka Date: Wed, 21 Sep 2022 02:42:22 +0000 Subject: [PATCH] Add MTU propagation docker-shim also to rootless dind runner images Related to #1201 --- runner/actions-runner-dind-rootless.dockerfile | 4 ++++ runner/actions-runner-dind.dockerfile | 4 ++++ runner/docker-shim.sh | 9 +++++++-- 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/runner/actions-runner-dind-rootless.dockerfile b/runner/actions-runner-dind-rootless.dockerfile index e7c5dc02..88bbc54e 100644 --- a/runner/actions-runner-dind-rootless.dockerfile +++ b/runner/actions-runner-dind-rootless.dockerfile @@ -106,6 +106,10 @@ COPY entrypoint.sh logger.bash rootless-startup.sh update-status /usr/bin/ RUN chmod +x /usr/bin/rootless-startup.sh /usr/bin/entrypoint.sh +# Copy the docker shim which propagates the docker MTU to underlying networks +# to replace the docker binary in the PATH. +COPY docker-shim.sh /usr/local/bin/docker + # Make the rootless runner directory executable RUN mkdir /run/user/1000 \ && chown runner:runner /run/user/1000 \ diff --git a/runner/actions-runner-dind.dockerfile b/runner/actions-runner-dind.dockerfile index 43ab6cd4..51a003fd 100644 --- a/runner/actions-runner-dind.dockerfile +++ b/runner/actions-runner-dind.dockerfile @@ -103,6 +103,10 @@ COPY entrypoint.sh logger.bash startup.sh update-status /usr/bin/ COPY supervisor/ /etc/supervisor/conf.d/ RUN chmod +x /usr/bin/startup.sh /usr/bin/entrypoint.sh +# Copy the docker shim which propagates the docker MTU to underlying networks +# to replace the docker binary in the PATH. +COPY docker-shim.sh /usr/local/bin/docker + # Configure hooks folder structure. COPY hooks /etc/arc/hooks/ diff --git a/runner/docker-shim.sh b/runner/docker-shim.sh index 56d8f5b5..bef431b3 100755 --- a/runner/docker-shim.sh +++ b/runner/docker-shim.sh @@ -2,11 +2,16 @@ set -Eeuo pipefail +DOCKER=/usr/bin/docker +if [ ! -e $DOCKER ]; then + DOCKER=$HOME/bin/docker +fi + if [[ ${ARC_DOCKER_MTU_PROPAGATION:-false} == true ]] && (($# >= 2)) && [[ $1 == network && $2 == create ]] && - mtu=$(/usr/bin/docker network inspect bridge --format '{{index .Options "com.docker.network.driver.mtu"}}' 2>/dev/null); then + mtu=$($DOCKER network inspect bridge --format '{{index .Options "com.docker.network.driver.mtu"}}' 2>/dev/null); then shift 2 set -- network create --opt com.docker.network.driver.mtu="$mtu" "$@" fi -exec /usr/bin/docker "$@" +exec $DOCKER "$@"