builder/setup_linux.go (32 lines of code) (raw):

// Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. package builder import ( "bytes" "context" "fmt" "github.com/google/uuid" "github.com/pkg/errors" ) const ( config = `{ "experimental": "enabled", "HttpHeaders": {"X-Meta-Source-Client": "azure/acr/tasks"} }` ) // setupConfig initializes ~/.docker/config.json func (b *Builder) setupConfig(ctx context.Context) error { args := []string{ "docker", "run", "--name", fmt.Sprintf("acb_init_config_%s", uuid.New()), "--rm", // Home "--volume", homeVol + ":" + homeWorkDir, "--env", homeEnv, "--entrypoint", "bash", configImageName, "-c", "mkdir -p ~/.docker && cat << EOF > ~/.docker/config.json\n" + config + "\nEOF", } var buf bytes.Buffer if err := b.procManager.Run(ctx, args, nil, &buf, &buf, ""); err != nil { return errors.Wrap(err, fmt.Sprintf("failed to setup config, msg: %s", buf.String())) } return nil }