(ctx context.Context, project *types.Project, serviceToBeBuild types.Services, options api.BuildOptions)
| 116 | } |
| 117 | |
| 118 | func (s *composeService) doBuildBake(ctx context.Context, project *types.Project, serviceToBeBuild types.Services, options api.BuildOptions) (map[string]string, error) { //nolint:gocyclo |
| 119 | eg := errgroup.Group{} |
| 120 | ch := make(chan *client.SolveStatus) |
| 121 | displayMode := progressui.DisplayMode(options.Progress) |
| 122 | if p, ok := os.LookupEnv("BUILDKIT_PROGRESS"); ok && displayMode == progressui.AutoMode { |
| 123 | displayMode = progressui.DisplayMode(p) |
| 124 | } |
| 125 | out := options.Out |
| 126 | if out == nil { |
| 127 | out = s.stdout() |
| 128 | } |
| 129 | display, err := progressui.NewDisplay(makeConsole(out), displayMode) |
| 130 | if err != nil { |
| 131 | return nil, err |
| 132 | } |
| 133 | eg.Go(func() error { |
| 134 | _, err := display.UpdateFrom(ctx, ch) |
| 135 | return err |
| 136 | }) |
| 137 | |
| 138 | cfg := bakeConfig{ |
| 139 | Groups: map[string]bakeGroup{}, |
| 140 | Targets: map[string]bakeTarget{}, |
| 141 | } |
| 142 | var ( |
| 143 | group bakeGroup |
| 144 | privileged bool |
| 145 | read []string |
| 146 | expectedImages = make(map[string]string, len(serviceToBeBuild)) // service name -> expected image |
| 147 | targets = make(map[string]string, len(serviceToBeBuild)) // service name -> build target |
| 148 | ) |
| 149 | |
| 150 | // produce a unique ID for service used as bake target |
| 151 | for serviceName := range project.Services { |
| 152 | t := strings.ReplaceAll(serviceName, ".", "_") |
| 153 | for { |
| 154 | if _, ok := targets[serviceName]; !ok { |
| 155 | targets[serviceName] = t |
| 156 | break |
| 157 | } |
| 158 | t += "_" |
| 159 | } |
| 160 | } |
| 161 | |
| 162 | var secretsEnv []string |
| 163 | for serviceName, service := range project.Services { |
| 164 | if service.Build == nil { |
| 165 | continue |
| 166 | } |
| 167 | buildConfig := *service.Build |
| 168 | labels := getImageBuildLabels(project, service) |
| 169 | |
| 170 | args := resolveAndMergeBuildArgs(s.getProxyConfig(), project, service, options).ToMapping() |
| 171 | for k, v := range args { |
| 172 | args[k] = strings.ReplaceAll(v, "${", "$${") |
| 173 | } |
| 174 | |
| 175 | entitlements := buildConfig.Entitlements |
no test coverage detected