Compare commits

...

2 commits

Author SHA1 Message Date
Josh Spicer
4d91590448 update test, add stub for dockerDefaultAddressPool 2022-10-20 18:25:15 +00:00
Kevin Klopfenstein
c26c541493 Add default-address-pool setting 2022-10-20 12:51:07 +00:00
5 changed files with 54 additions and 4 deletions

View file

@ -1,6 +1,6 @@
{
"id": "docker-in-docker",
"version": "1.0.7",
"version": "1.0.8",
"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.",
@ -33,6 +33,12 @@
"type": "boolean",
"default": true,
"description": "Allow automatically setting the dockerd DNS server when the installation script detects it is running in Azure"
},
"dockerDefaultAddressPool": {
"type": "string",
"default": "",
"proposals": [],
"description": "Define default address pools for Docker networks. e.g. base=192.168.0.0/16,size=24"
}
},
"entrypoint": "/usr/local/share/docker-init.sh",

View file

@ -12,6 +12,7 @@ DOCKER_VERSION=${VERSION:-"latest"} # The Docker/Moby Engine + CLI should match
USE_MOBY=${MOBY:-"true"}
DOCKER_DASH_COMPOSE_VERSION=${DOCKERDASHCOMPOSEVERSION:-"v1"} # v1 or v2
AZURE_DNS_AUTO_DETECTION=${AZUREDNSAUTODETECTION:-"true"}
DOCKER_DEFAULT_ADDRESS_POOL=${DOCKERDEFAULTADDRESSPOOL}
ENABLE_NONROOT_DOCKER=${ENABLE_NONROOT_DOCKER:-"true"}
USERNAME=${USERNAME:-"automatic"}
@ -325,12 +326,13 @@ tee /usr/local/share/docker-init.sh > /dev/null \
set -e
AZURE_DNS_AUTO_DETECTION=$AZURE_DNS_AUTO_DETECTION
AZURE_DNS_AUTO_DETECTION=${AZURE_DNS_AUTO_DETECTION}
DOCKER_DEFAULT_ADDRESS_POOL=${DOCKER_DEFAULT_ADDRESS_POOL}
EOF
tee -a /usr/local/share/docker-init.sh > /dev/null \
<< 'EOF'
dockerd_start="$(cat << 'INNEREOF'
dockerd_start="AZURE_DNS_AUTO_DETECTION=${AZURE_DNS_AUTO_DETECTION} DOCKER_DEFAULT_ADDRESS_POOL=${DOCKER_DEFAULT_ADDRESS_POOL} $(cat << 'INNEREOF'
# explicitly remove dockerd and containerd PID file to ensure that it can start properly if it was stopped uncleanly
# ie: docker kill <ID>
find /run /var/run -iname 'docker*.pid' -delete || :
@ -377,10 +379,18 @@ dockerd_start="$(cat << 'INNEREOF'
echo "Not setting dockerd DNS manually."
CUSTOMDNS=""
fi
set -e
if [ -z "$DOCKER_DEFAULT_ADDRESS_POOL" ]
then
DEFAULT_ADDRESS_POOL=""
else
DEFAULT_ADDRESS_POOL="--default-address-pool $DOCKER_DEFAULT_ADDRESS_POOL"
fi
# Start docker/moby engine
( dockerd $CUSTOMDNS > /tmp/dockerd.log 2>&1 ) &
( dockerd $CUSTOMDNS $DEFAULT_ADDRESS_POOL > /tmp/dockerd.log 2>&1 ) &
INNEREOF
)"

View file

@ -0,0 +1,19 @@
#!/bin/bash
set -e
# Optional: Import test library
source dev-container-features-test-lib
# Definition specific tests
check "version" docker --version
check "ps" docker ps
check "run hello world" docker run hello-world
# Asserts specific to manually setting dockerDefaultAddressPool
# TODO
# Report result
reportResults

View file

@ -0,0 +1,11 @@
{
"dockerDefaultAddressPool": {
"image": "mcr.microsoft.com/vscode/devcontainers/javascript-node:0-18",
"remoteUser": "node",
"features": {
"docker-in-docker": {
"dockerDefaultAddressPool": "192.168.0.0/16,size=24"
}
}
}
}

View file

@ -8,5 +8,9 @@ source dev-container-features-test-lib
# Definition specific tests
check "version" docker --version
check "ps" docker ps
check "run hello world" docker run hello-world
# Report result
reportResults