From 66aa0427cda4e820ca37f2f6df797db7672d70bf Mon Sep 17 00:00:00 2001 From: Etienne Perot Date: Fri, 7 Oct 2022 15:14:03 -0700 Subject: [PATCH] Make BuildKite's docker runtime reload logic robust against empty runtime dict PiperOrigin-RevId: 479678511 --- .buildkite/hooks/post-command | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/.buildkite/hooks/post-command b/.buildkite/hooks/post-command index 2e88eaf13..aa7b50e43 100644 --- a/.buildkite/hooks/post-command +++ b/.buildkite/hooks/post-command @@ -77,8 +77,11 @@ done set -euo pipefail # Remove all Docker runtimes that may be installed. -if grep -qE runtimes /etc/docker/daemon.json; then - cat /etc/docker/daemon.json | jq 'del(.runtimes) + {runtimes: {}}' \ +num_docker_runtimes="$(jq \ + '(if has("runtimes") then .runtimes else {} end) | length' \ + < /etc/docker/daemon.json)" +if [[ "$num_docker_runtimes" -gt 0 ]]; then + cat /etc/docker/daemon.json | jq 'del(.runtimes)' \ | sudo tee /etc/docker/daemon.json.tmp sudo mv /etc/docker/daemon.json.tmp /etc/docker/daemon.json bash -c "$DOCKER_RELOAD_COMMAND"