diff --git a/bake/bake.go b/bake/bake.go index 1abf5f1b..fc8b9337 100644 --- a/bake/bake.go +++ b/bake/bake.go @@ -140,19 +140,6 @@ func ReadTargets(ctx context.Context, files []File, targets, overrides []string, } } - // Propagate SOURCE_DATE_EPOCH from the client env. - // The logic is purposely duplicated from `build/build`.go for keeping this visible in `bake --print`. - if v := os.Getenv("SOURCE_DATE_EPOCH"); v != "" { - for _, f := range m { - if f.Args == nil { - f.Args = make(map[string]*string) - } - if _, ok := f.Args["SOURCE_DATE_EPOCH"]; !ok { - f.Args["SOURCE_DATE_EPOCH"] = &v - } - } - } - return m, n, nil } diff --git a/commands/bake.go b/commands/bake.go index c7f1461e..9c49327e 100644 --- a/commands/bake.go +++ b/commands/bake.go @@ -149,6 +149,19 @@ func runBake(dockerCli command.Cli, targets []string, in bakeOptions, cFlags com return err } + if v := os.Getenv("SOURCE_DATE_EPOCH"); v != "" { + // TODO: extract env var parsing to a method easily usable by library consumers + for _, t := range tgts { + if _, ok := t.Args["SOURCE_DATE_EPOCH"]; ok { + continue + } + if t.Args == nil { + t.Args = map[string]*string{} + } + t.Args["SOURCE_DATE_EPOCH"] = &v + } + } + // this function can update target context string from the input so call before printOnly check bo, err := bake.TargetsToBuildOpt(tgts, inp) if err != nil {