From dc3bd6192d33e8a1fe7f276b4be8134b7cfd90df Mon Sep 17 00:00:00 2001 From: Nicolas De Loof Date: Tue, 26 Aug 2025 09:00:51 +0200 Subject: [PATCH 1/2] only propagate os.Env to bake, not the whole project.Environment Signed-off-by: Nicolas De Loof --- pkg/compose/build_bake.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/compose/build_bake.go b/pkg/compose/build_bake.go index e9241c1b879..7b53887154e 100644 --- a/pkg/compose/build_bake.go +++ b/pkg/compose/build_bake.go @@ -331,7 +331,7 @@ func (s *composeService) doBuildBake(ctx context.Context, project *types.Project } cmd := exec.CommandContext(ctx, buildx.Path, args...) - err = s.prepareShellOut(ctx, project.Environment, cmd) + err = s.prepareShellOut(ctx, types.NewMapping(os.Environ()), cmd) if err != nil { return nil, err } From 37a8437d93f5cb3bb866b59d3b8734954517288e Mon Sep 17 00:00:00 2001 From: Nicolas De Loof Date: Thu, 28 Aug 2025 17:01:19 +0200 Subject: [PATCH 2/2] only load COMPOSE_* from $PWD/.env Signed-off-by: Nicolas De Loof --- cmd/compose/compose.go | 2 +- cmd/compose/run.go | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/cmd/compose/compose.go b/cmd/compose/compose.go index b73ef92d9d0..da3c7def26b 100644 --- a/cmd/compose/compose.go +++ b/cmd/compose/compose.go @@ -693,7 +693,7 @@ func setEnvWithDotEnv(opts ProjectOptions) error { return nil } for k, v := range envFromFile { - if _, ok := os.LookupEnv(k); !ok { + if _, ok := os.LookupEnv(k); !ok && strings.HasPrefix(k, "COMPOSE_") { if err = os.Setenv(k, v); err != nil { return nil } diff --git a/cmd/compose/run.go b/cmd/compose/run.go index 2bf126fefb9..714bcad5136 100644 --- a/cmd/compose/run.go +++ b/cmd/compose/run.go @@ -120,8 +120,8 @@ func (options runOptions) apply(project *types.Project) (*types.Project, error) return project, nil } -func (options runOptions) getEnvironment() (types.Mapping, error) { - environment := types.NewMappingWithEquals(options.environment).Resolve(os.LookupEnv).ToMapping() +func (options runOptions) getEnvironment(resolve func(string) (string, bool)) (types.Mapping, error) { + environment := types.NewMappingWithEquals(options.environment).Resolve(resolve).ToMapping() for _, file := range options.envFiles { f, err := os.Open(file) if err != nil { @@ -289,7 +289,7 @@ func runRun(ctx context.Context, backend api.Service, project *types.Project, op buildForRun = &bo } - environment, err := options.getEnvironment() + environment, err := options.getEnvironment(project.Environment.Resolve) if err != nil { return err }