MCPcopy
hub / github.com/docker/compose / runConfigNoInterpolate

Function runConfigNoInterpolate

cmd/compose/config.go:268–300  ·  view source on GitHub ↗
(ctx context.Context, dockerCli command.Cli, opts configOptions, services []string)

Source from the content-addressed store, hash-verified

266}
267
268func runConfigNoInterpolate(ctx context.Context, dockerCli command.Cli, opts configOptions, services []string) ([]byte, error) {
269 // we can't use ToProject, so the model we render here is only partially resolved
270 model, err := opts.ToModel(ctx, dockerCli, services)
271 if err != nil {
272 return nil, err
273 }
274
275 if opts.resolveImageDigests {
276 err = resolveImageDigests(ctx, dockerCli, model)
277 if err != nil {
278 return nil, err
279 }
280 }
281
282 if opts.lockImageDigests {
283 for key, e := range model {
284 if key != "services" {
285 delete(model, key)
286 } else {
287 for _, s := range e.(map[string]any) {
288 service := s.(map[string]any)
289 for key := range service {
290 if key != "image" {
291 delete(service, key)
292 }
293 }
294 }
295 }
296 }
297 }
298
299 return formatModel(model, opts.Format)
300}
301
302func resolveImageDigests(ctx context.Context, dockerCli command.Cli, model map[string]any) (err error) {
303 // create a pseudo-project so we can rely on WithImagesResolved to resolve images

Callers 1

runConfigFunction · 0.85

Calls 3

resolveImageDigestsFunction · 0.85
formatModelFunction · 0.85
ToModelMethod · 0.45

Tested by

no test coverage detected