mirror of
https://github.com/docker/compose.git
synced 2026-07-11 02:34:25 +00:00
`compose up --build` populates BuildOptions.Deps=true so the initial startup also builds images for depends_on services. The watch rebuild path reused the same BuildOptions pointer, only resetting Build.Services to the watched service. Build.Deps stayed true, so s.build() switched back to IncludeDependencies and rebuilt the upstream dependency too. Fix it by working on a local copy of BuildOptions in rebuild() and explicitly setting Deps=false. Using a local copy also removes the data race on the shared pointer when concurrent file events fire. Also fix a related leak in doBuildBake: the loop populating bake configuration iterates over every service in the project (needed so additional_contexts: service:xxx references can resolve), but it was emitting the "Image X Building" progress event and tracking expected images for services that were not part of serviceToBeBuild. Filter those side-effects to the actual build set so the watch rebuild log shows only the watched service. Adds an e2e test reproducing the bug. Fixes #13853 Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com> |
||
|---|---|---|
| .. | ||
| api | ||
| bridge | ||
| compose | ||
| dryrun | ||
| e2e | ||
| mocks | ||
| remote | ||
| utils | ||
| watch | ||