in internal/cs/pushimage.go [53:89]
func PushImage(ctx context.Context, in *PushImageInput, lio LightsailImageOperator, imgo ImageOperator) error {
authConfig, err := getServiceRegistryAuth(ctx, lio)
if err != nil {
return err
}
remoteImage := RemoteImage{AuthConfig: *authConfig, Tag: generateUniqueTag()}
err = imgo.TagImage(ctx, in.Image, remoteImage.Ref())
if err != nil {
return err
}
defer tryUntagImage(ctx, imgo, remoteImage.Ref())
digest, err := imgo.PushImage(ctx, remoteImage)
if err != nil {
return err
}
registered, err := lio.RegisterContainerImageWithContext(
ctx,
new(lightsail.RegisterContainerImageInput).
SetServiceName(in.Service).
SetLabel(in.Label).
SetDigest(digest),
)
if err != nil {
return err
}
fmt.Printf("Digest: %s\nImage %q registered.\nRefer to this image as %q in deployments.\n",
aws.StringValue(registered.ContainerImage.Digest),
in.Image,
aws.StringValue(registered.ContainerImage.Image))
return nil
}