@@ -44,6 +44,22 @@ RUST_TARGETS ?= wasm32-unknown-unknown
4444DOCKER_BUILD_EXTRA_ARGS ?=
4545SKIP_BUILD_NETWORK_CHECK ?= 0
4646
47+ # Forward host proxy env vars to Docker build (BuildKit predefined ARGs —
48+ # available in all stages without Dockerfile ARG declarations, excluded
49+ # from cache key so proxy changes don't bust layer cache).
50+ # Rewrite localhost proxy addresses: 127.0.0.1/localhost on the host is the
51+ # container's own loopback during build — host.docker.internal reaches the host.
52+ _dproxy = $(subst ://localhost,://host.docker.internal,$(subst ://127.0.0.1,://host.docker.internal,$1) )
53+ PROXY_BUILD_ARGS := \
54+ $(if $(HTTP_PROXY ) ,--build-arg HTTP_PROXY=$(call _dproxy,$(HTTP_PROXY ) ) ) \
55+ $(if $(HTTPS_PROXY ) ,--build-arg HTTPS_PROXY=$(call _dproxy,$(HTTPS_PROXY ) ) ) \
56+ $(if $(http_proxy ) ,--build-arg http_proxy=$(call _dproxy,$(http_proxy ) ) ) \
57+ $(if $(https_proxy ) ,--build-arg https_proxy=$(call _dproxy,$(https_proxy ) ) ) \
58+ $(if $(NO_PROXY ) ,--build-arg NO_PROXY=$(NO_PROXY ) ) \
59+ $(if $(no_proxy ) ,--build-arg no_proxy=$(no_proxy ) )
60+
61+ DOCKER_BUILD_FLAGS = $(PROXY_BUILD_ARGS ) $(DOCKER_BUILD_EXTRA_ARGS )
62+
4763TOOLCHAIN_BUILD_ARGS := \
4864 --build-arg NODE_MAJOR=$(NODE_MAJOR ) \
4965 --build-arg GO_VERSION=$(GO_VERSION ) \
@@ -112,7 +128,7 @@ build-network-check:
112128 printf ' %s\n' \
113129 ' FROM node:$(NODE_MAJOR)-bookworm-slim' \
114130 ' RUN node -e "require(' \' ' dns' \' ' ).lookup(' \' ' registry.npmjs.org' \' ' ,{all:true},(e,a)=>{if(e){console.error(e);process.exit(1)};console.log(a.map(x=>x.address).slice(0,3).join(' \' ' ,' \' ' ))})"' \
115- | docker build $(DOCKER_BUILD_EXTRA_ARGS ) --progress=plain --no-cache -f - . > /dev/null; \
131+ | docker build $(DOCKER_BUILD_FLAGS ) --progress=plain --no-cache -f - . > /dev/null; \
116132 fi
117133
118134build-main : build-network-check
@@ -159,23 +175,23 @@ build-main: build-network-check
159175 fi ; \
160176 fi
161177 @echo " Hint: override via GO_VERSION=... CLAUDE_CODE_VERSION=... or run 'make versions-pin'"
162- docker build $(DOCKER_BUILD_EXTRA_ARGS ) -f $(DOCKERFILE ) $(MAIN_BUILD_ARGS ) -t $(MAIN_IMAGE ) .
178+ docker build $(DOCKER_BUILD_FLAGS ) -f $(DOCKERFILE ) $(MAIN_BUILD_ARGS ) -t $(MAIN_IMAGE ) .
163179 @echo " ✅ Build completed: $( MAIN_IMAGE) "
164180
165181rebuild :
166182 @echo " 🔨 Rebuilding Docker image (no cache) with $( DOCKERFILE) ..."
167- docker build $(DOCKER_BUILD_EXTRA_ARGS ) -f $(DOCKERFILE ) --no-cache $(MAIN_BUILD_ARGS ) -t $(MAIN_IMAGE ) .
183+ docker build $(DOCKER_BUILD_FLAGS ) -f $(DOCKERFILE ) --no-cache $(MAIN_BUILD_ARGS ) -t $(MAIN_IMAGE ) .
168184 @echo " ✅ Rebuild completed: $( MAIN_IMAGE) "
169185
170186
171187build-core :
172188 @echo " 🔨 Building stable core image..."
173- docker build $(DOCKER_BUILD_EXTRA_ARGS ) -f $(DOCKERFILE ) --target agent-base $(CORE_BUILD_ARGS ) -t $(CORE_IMAGE ) .
189+ docker build $(DOCKER_BUILD_FLAGS ) -f $(DOCKERFILE ) --target agent-base $(CORE_BUILD_ARGS ) -t $(CORE_IMAGE ) .
174190 @echo " ✅ Core build completed: $( CORE_IMAGE) "
175191
176192build-rust-image : build-network-check
177193 @echo " 🔨 Building Rust Docker image..."
178- docker build $(DOCKER_BUILD_EXTRA_ARGS ) -f $(RUST_DOCKERFILE ) \
194+ docker build $(DOCKER_BUILD_FLAGS ) -f $(RUST_DOCKERFILE ) \
179195 --build-arg BASE_IMAGE=$(CORE_IMAGE ) \
180196 $(RUST_BUILD_ARGS ) \
181197 -t $(RUST_IMAGE ) .
@@ -192,27 +208,27 @@ build-all:
192208
193209buildx :
194210 @echo " 🔨 Building with docker buildx..."
195- docker buildx build -f $(DOCKERFILE ) --load $(MAIN_BUILD_ARGS ) -t $(MAIN_IMAGE ) .
211+ docker buildx build $( DOCKER_BUILD_FLAGS ) -f $(DOCKERFILE ) --load $(MAIN_BUILD_ARGS ) -t $(MAIN_IMAGE ) .
196212 @echo " ✅ Buildx completed: $( MAIN_IMAGE) "
197213
198214buildx-multi :
199215 @echo " 🔨 Building multi-arch images for amd64 and arm64..."
200- docker buildx build -f $(DOCKERFILE ) --platform $(MULTI_ARCH_PLATFORMS ) \
216+ docker buildx build $( DOCKER_BUILD_FLAGS ) -f $(DOCKERFILE ) --platform $(MULTI_ARCH_PLATFORMS ) \
201217 $(MAIN_BUILD_ARGS ) \
202218 --push -t $(MAIN_IMAGE ) .
203219 @echo " ✅ Multi-arch build completed and pushed: $( MAIN_IMAGE) "
204220
205221buildx-multi-rust :
206222 @echo " 🔨 Building multi-arch Rust images for amd64 and arm64..."
207- docker buildx build -f $(RUST_DOCKERFILE ) --platform $(MULTI_ARCH_PLATFORMS ) \
223+ docker buildx build $( DOCKER_BUILD_FLAGS ) -f $(RUST_DOCKERFILE ) --platform $(MULTI_ARCH_PLATFORMS ) \
208224 --build-arg BASE_IMAGE=$(MAIN_IMAGE ) \
209225 $(RUST_BUILD_ARGS ) \
210226 --push -t $(RUST_IMAGE ) .
211227 @echo " ✅ Multi-arch Rust build completed and pushed: $( RUST_IMAGE) "
212228
213229buildx-multi-local :
214230 @echo " 🔨 Building multi-arch images locally..."
215- docker buildx build -f $(DOCKERFILE ) --platform $(MULTI_ARCH_PLATFORMS ) \
231+ docker buildx build $( DOCKER_BUILD_FLAGS ) -f $(DOCKERFILE ) --platform $(MULTI_ARCH_PLATFORMS ) \
216232 $(MAIN_BUILD_ARGS ) \
217233 -t $(MAIN_IMAGE ) .
218234 @echo " ✅ Multi-arch build completed locally: $( MAIN_IMAGE) "
0 commit comments