Description
The Docker build process fails with SSL connection timeouts when attempting to download musl-1.2.5.tar.gz from musl.libc.org during the static bash binary compilation step. This prevents successful completion of the driver image build.
Environment
- OS: Linux 6.12.53-1-lts
- Docker BuildKit: Enabled
- Build script:
./demo/clusters/kind/build-dra-driver-gpu.sh
- Affected Dockerfile:
deployments/container/Dockerfile
Steps to Reproduce
-
Set up the environment:
export KIND_CLUSTER_NAME="kind-dra-1"
-
Run the build script:
./demo/clusters/kind/build-dra-driver-gpu.sh
-
Build fails during the bash-static compilation step
Error Output
#18 145.1 File: musl-1.2.5.tar.gz | Url: https://musl.libc.org/releases/musl-1.2.5.tar.gz
#18 165.1 curl: (28) SSL connection timeout
#18 190.1 curl: (28) SSL connection timeout
#18 215.1 curl: (28) SSL connection timeout
#18 240.1 curl: (28) SSL connection timeout
#18 265.2 curl: (28) SSL connection timeout
#18 290.2 curl: (28) SSL connection timeout
#18 315.2 curl: (28) SSL connection timeout
#18 340.2 curl: (28) SSL connection timeout
#18 365.2 curl: (28) SSL connection timeout
Root Cause
The issue occurs at Dockerfile:65-70 where the build script downloads musl-libc:
- Network connectivity: While
musl.libc.org is reachable via ping, HTTPS connections timeout
- Docker network isolation: Default Docker networking may have restricted access to external HTTPS endpoints
- Insufficient timeouts: The current
--connect-timeout 20 may be too short for slow/restricted networks
Workaround/Solution
Two changes resolve the issue:
1. Use host network for Docker build
File: deployments/container/Makefile (line 62)
build:
DOCKER_BUILDKIT=1 \
$(DOCKER) $(BUILDX) build --pull \
+ --network=host \
$(DOCKER_BUILD_OPTIONS) \
2. Increase curl timeout parameters
File: deployments/container/Dockerfile (line 67)
- sed -i 's/-sLO/-sSfLO --retry 300 --connect-timeout 20 --retry-delay 5 --retry-all-errors /g' ./build.sh && \
+ sed -i 's/-sLO/-sSfLO --retry 300 --connect-timeout 60 --max-time 600 --retry-delay 5 --retry-all-errors /g' ./build.sh && \
Changes:
- Increase
--connect-timeout from 20s to 60s
- Add
--max-time 600 for 10-minute overall timeout
Suggested Fix
Consider one or both of the following approaches:
-
Add build argument for network mode (allows users to override if needed):
DOCKER_NETWORK ?= default
build:
$(DOCKER) $(BUILDX) build --network=$(DOCKER_NETWORK) ...
-
Increase default timeouts to handle various network conditions globally
Additional Context
- The
--network=host flag allows Docker to bypass network isolation and use the host's network stack
- Alternative mirrors for musl-libc could be considered as fallback options
Description
The Docker build process fails with SSL connection timeouts when attempting to download
musl-1.2.5.tar.gzfrommusl.libc.orgduring the static bash binary compilation step. This prevents successful completion of the driver image build.Environment
./demo/clusters/kind/build-dra-driver-gpu.shdeployments/container/DockerfileSteps to Reproduce
Set up the environment:
Run the build script:
Build fails during the bash-static compilation step
Error Output
Root Cause
The issue occurs at
Dockerfile:65-70where the build script downloads musl-libc:musl.libc.orgis reachable via ping, HTTPS connections timeout--connect-timeout 20may be too short for slow/restricted networksWorkaround/Solution
Two changes resolve the issue:
1. Use host network for Docker build
File:
deployments/container/Makefile(line 62)build: DOCKER_BUILDKIT=1 \ $(DOCKER) $(BUILDX) build --pull \ + --network=host \ $(DOCKER_BUILD_OPTIONS) \2. Increase curl timeout parameters
File:
deployments/container/Dockerfile(line 67)Changes:
--connect-timeoutfrom 20s to 60s--max-time 600for 10-minute overall timeoutSuggested Fix
Consider one or both of the following approaches:
Add build argument for network mode (allows users to override if needed):
Increase default timeouts to handle various network conditions globally
Additional Context
--network=hostflag allows Docker to bypass network isolation and use the host's network stack