Skip to content

Commit 04cb7d1

Browse files
Docker-in-docker: Updates docker-init with "pkill" (#711)
* Docker-in-docker: Updates docker-init with "pkill" * pkill only if container didn't start at first * pkill with condition * add back sudo_if
1 parent cf92754 commit 04cb7d1

File tree

2 files changed

+15
-2
lines changed

2 files changed

+15
-2
lines changed

src/docker-in-docker/devcontainer-feature.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"id": "docker-in-docker",
3-
"version": "2.5.0",
3+
"version": "2.6.0",
44
"name": "Docker (Docker-in-Docker)",
55
"documentationURL": "https://github.com/devcontainers/features/tree/main/src/docker-in-docker",
66
"description": "Create child containers *inside* a container, independent from the host's docker instance. Installs Docker extension in the container along with needed CLIs.",

src/docker-in-docker/install.sh

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -362,8 +362,9 @@ EOF
362362
tee -a /usr/local/share/docker-init.sh > /dev/null \
363363
<< 'EOF'
364364
dockerd_start="AZURE_DNS_AUTO_DETECTION=${AZURE_DNS_AUTO_DETECTION} DOCKER_DEFAULT_ADDRESS_POOL=${DOCKER_DEFAULT_ADDRESS_POOL} $(cat << 'INNEREOF'
365+
# Stop dockerd and containerd in case they are already running
366+
docker info > /dev/null 2>&1 && pkill dockerd && pkill containerd
365367
# explicitly remove dockerd and containerd PID file to ensure that it can start properly if it was stopped uncleanly
366-
# ie: docker kill <ID>
367368
find /run /var/run -iname 'docker*.pid' -delete || :
368369
find /run /var/run -iname 'container*.pid' -delete || :
369370
@@ -444,6 +445,16 @@ dockerd_start="AZURE_DNS_AUTO_DETECTION=${AZURE_DNS_AUTO_DETECTION} DOCKER_DEFAU
444445
INNEREOF
445446
)"
446447
448+
sudo_if() {
449+
COMMAND="$*"
450+
451+
if [ "$(id -u)" -ne 0 ]; then
452+
sudo $COMMAND
453+
else
454+
$COMMAND
455+
fi
456+
}
457+
447458
retry_docker_start_count=0
448459
docker_ok="false"
449460
@@ -469,6 +480,8 @@ do
469480
470481
if [ "${docker_ok}" != "true" ]; then
471482
echo "(*) Failed to start docker, retrying..."
483+
sudo_if pkill dockerd
484+
sudo_if pkill containerd
472485
fi
473486
474487
retry_docker_start_count=`expr $retry_docker_start_count + 1`

0 commit comments

Comments
 (0)