MCPcopy
hub / github.com/nektos/act / extractFromImageEnv

Method extractFromImageEnv

pkg/container/docker_run.go:512–548  ·  view source on GitHub ↗
(env *map[string]string)

Source from the content-addressed store, hash-verified

510}
511
512func (cr *containerReference) extractFromImageEnv(env *map[string]string) common.Executor {
513 envMap := *env
514 return func(ctx context.Context) error {
515 logger := common.Logger(ctx)
516
517 inspectResult, err := cr.cli.ImageInspect(ctx, cr.input.Image)
518 if err != nil {
519 logger.Error(err)
520 return fmt.Errorf("inspect image: %w", err)
521 }
522
523 if inspectResult.Config == nil {
524 return nil
525 }
526
527 imageEnv, err := godotenv.Unmarshal(strings.Join(inspectResult.Config.Env, "\n"))
528 if err != nil {
529 logger.Error(err)
530 return fmt.Errorf("unmarshal image env: %w", err)
531 }
532
533 for k, v := range imageEnv {
534 if k == "PATH" {
535 if envMap[k] == "" {
536 envMap[k] = v
537 } else {
538 envMap[k] += `:` + v
539 }
540 } else if envMap[k] == "" {
541 envMap[k] = v
542 }
543 }
544
545 env = &envMap
546 return nil
547 }
548}
549
550func (cr *containerReference) exec(cmd []string, env map[string]string, user, workdir string) common.Executor {
551 return func(ctx context.Context) error {

Callers 2

UpdateFromImageEnvMethod · 0.95
TestDockerFunction · 0.95

Calls 2

LoggerFunction · 0.92
ErrorMethod · 0.45

Tested by 1

TestDockerFunction · 0.76