in gce-containers-startup/runtime/runtime.go [134:166]
func pullImage(dockerClient DockerApiClient, auth string, spec api.Container) error {
ctx, cancel := context.WithCancel(context.Background())
defer cancel()
authStruct := dockertypes.AuthConfig{}
if auth != "" {
authStruct.Username = "_token"
authStruct.Password = auth
}
base64Auth, err := base64EncodeAuth(authStruct)
if err != nil {
return err
}
opts := dockertypes.ImagePullOptions{}
opts.RegistryAuth = base64Auth
log.Printf("Pulling image: '%s'", spec.Image)
resp, err := dockerClient.ImagePull(ctx, spec.Image, opts)
if err != nil {
return err
}
defer resp.Close()
body, err := ioutil.ReadAll(resp)
if err != nil {
return err
}
log.Printf("Received ImagePull response: (%s).\n", body)
return nil
}