From 9b84c7ec8f91a7e4e137f9b3ec51d08740fb61af Mon Sep 17 00:00:00 2001 From: Samruddhi Khandale Date: Fri, 18 Aug 2023 11:10:08 -0700 Subject: [PATCH 1/3] Update install.sh --- src/docker-in-docker/install.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/docker-in-docker/install.sh b/src/docker-in-docker/install.sh index f7e5a7d52..0d12c6337 100755 --- a/src/docker-in-docker/install.sh +++ b/src/docker-in-docker/install.sh @@ -435,6 +435,8 @@ do eval "${dockerd_start}" fi + sleep 5s + set +e docker info > /dev/null 2>&1 && docker_ok="true" From dddce754826e93554eb96ce7d62ec1597ed0bafc Mon Sep 17 00:00:00 2001 From: Samruddhi Khandale Date: Fri, 18 Aug 2023 21:07:39 +0000 Subject: [PATCH 2/3] [docker-in-docker] Update retry logic --- src/docker-in-docker/devcontainer-feature.json | 2 +- src/docker-in-docker/install.sh | 3 +-- test/docker-in-docker/test-scripts/docker-test-init.sh | 5 +++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/docker-in-docker/devcontainer-feature.json b/src/docker-in-docker/devcontainer-feature.json index b5e0aeea6..2afdd1142 100644 --- a/src/docker-in-docker/devcontainer-feature.json +++ b/src/docker-in-docker/devcontainer-feature.json @@ -1,6 +1,6 @@ { "id": "docker-in-docker", - "version": "2.3.0", + "version": "2.3.1", "name": "Docker (Docker-in-Docker)", "documentationURL": "https://github.com/devcontainers/features/tree/main/src/docker-in-docker", "description": "Create child containers *inside* a container, independent from the host's docker instance. Installs Docker extension in the container along with needed CLIs.", diff --git a/src/docker-in-docker/install.sh b/src/docker-in-docker/install.sh index 0d12c6337..65b602167 100755 --- a/src/docker-in-docker/install.sh +++ b/src/docker-in-docker/install.sh @@ -441,9 +441,8 @@ do docker info > /dev/null 2>&1 && docker_ok="true" if [ "${docker_ok}" != "true" ]; then - echo "(*) Failed to start docker, retrying in 5s..." + echo "(*) Failed to start docker, retrying..." retry_count=`expr $retry_count + 1` - sleep 5s fi set -e done diff --git a/test/docker-in-docker/test-scripts/docker-test-init.sh b/test/docker-in-docker/test-scripts/docker-test-init.sh index b213fb40c..46def8c50 100644 --- a/test/docker-in-docker/test-scripts/docker-test-init.sh +++ b/test/docker-in-docker/test-scripts/docker-test-init.sh @@ -14,13 +14,14 @@ do /usr/local/share/docker-init.sh fi + sleep 5s + set +e docker info > /dev/null 2>&1 && docker_ok="true" if [ "${docker_ok}" != "true" ]; then - echo "(*) Failed to start docker, retrying in 5s... Retry count: ${retry_count}" + echo "(*) Failed to start docker, retrying... Retry count: ${retry_count}" retry_count=`expr $retry_count + 1` - sleep 1s fi set -e done \ No newline at end of file From 28549bef16940d0f597ea49f0846cf5fa1187636 Mon Sep 17 00:00:00 2001 From: Samruddhi Khandale Date: Fri, 18 Aug 2023 22:42:41 +0000 Subject: [PATCH 3/3] revert the retry logic! --- src/docker-in-docker/install.sh | 31 ++++-------------- test/docker-in-docker/docker_retry.sh | 32 ------------------- test/docker-in-docker/scenarios.json | 6 ---- .../test-scripts/docker-test-init.sh | 27 ---------------- 4 files changed, 6 insertions(+), 90 deletions(-) delete mode 100644 test/docker-in-docker/docker_retry.sh delete mode 100644 test/docker-in-docker/test-scripts/docker-test-init.sh diff --git a/src/docker-in-docker/install.sh b/src/docker-in-docker/install.sh index 65b602167..bdef12697 100755 --- a/src/docker-in-docker/install.sh +++ b/src/docker-in-docker/install.sh @@ -423,31 +423,12 @@ dockerd_start="AZURE_DNS_AUTO_DETECTION=${AZURE_DNS_AUTO_DETECTION} DOCKER_DEFAU INNEREOF )" -retry_count=0 -docker_ok="false" - -until [ "${docker_ok}" = "true" ] || [ "${retry_count}" -eq "5" ]; -do - # Start using sudo if not invoked as root - if [ "$(id -u)" -ne 0 ]; then - sudo /bin/sh -c "${dockerd_start}" - else - eval "${dockerd_start}" - fi - - sleep 5s - - set +e - docker info > /dev/null 2>&1 && docker_ok="true" - - if [ "${docker_ok}" != "true" ]; then - echo "(*) Failed to start docker, retrying..." - retry_count=`expr $retry_count + 1` - fi - set -e -done - -set +e +# Start using sudo if not invoked as root +if [ "$(id -u)" -ne 0 ]; then + sudo /bin/sh -c "${dockerd_start}" +else + eval "${dockerd_start}" +fi # Execute whatever commands were passed in (if any). This allows us # to set this script to ENTRYPOINT while still executing the default CMD. diff --git a/test/docker-in-docker/docker_retry.sh b/test/docker-in-docker/docker_retry.sh deleted file mode 100644 index cc35fbb04..000000000 --- a/test/docker-in-docker/docker_retry.sh +++ /dev/null @@ -1,32 +0,0 @@ -#!/bin/bash - -set -e - -# Optional: Import test library -source dev-container-features-test-lib - -# Definition specific tests -check "docker-buildx" docker buildx version -check "docker-ps" docker ps - -sleep 5s - -# Stop docker -pkill dockerd -pkill containerd - -sleep 5s - -set +e - docker_ok_code="$(docker info > /dev/null 2>&1; echo $?)" -set -e - -check "docker-not-running" bash -c "[[ ${docker_ok_code} == 1 ]]" - -# Testing retry logic -./test-scripts/docker-test-init.sh - -check "docker-started-after-retries" docker ps - -# Report result -reportResults diff --git a/test/docker-in-docker/scenarios.json b/test/docker-in-docker/scenarios.json index 525ce6930..de4e7d6bc 100644 --- a/test/docker-in-docker/scenarios.json +++ b/test/docker-in-docker/scenarios.json @@ -67,11 +67,5 @@ } }, "remoteUser": "node" - }, - "docker_retry": { - "image": "ubuntu:focal", - "features": { - "docker-in-docker": {} - } } } diff --git a/test/docker-in-docker/test-scripts/docker-test-init.sh b/test/docker-in-docker/test-scripts/docker-test-init.sh deleted file mode 100644 index 46def8c50..000000000 --- a/test/docker-in-docker/test-scripts/docker-test-init.sh +++ /dev/null @@ -1,27 +0,0 @@ -#!/bin/sh -#------------------------------------------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See https://go.microsoft.com/fwlink/?linkid=2090316 for license information. -#------------------------------------------------------------------------------------------------------------- - -retry_count=0 -docker_ok="false" - -until [ "${docker_ok}" = "true" ] || [ "${retry_count}" -eq "5" ]; -do - if [ "${retry_count}" -eq "3" ]; then - echo "Starting docker after 3 retries..." - /usr/local/share/docker-init.sh - fi - - sleep 5s - - set +e - docker info > /dev/null 2>&1 && docker_ok="true" - - if [ "${docker_ok}" != "true" ]; then - echo "(*) Failed to start docker, retrying... Retry count: ${retry_count}" - retry_count=`expr $retry_count + 1` - fi - set -e -done \ No newline at end of file