in internal/cs/pushimage.go [52: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.RegisterContainerImage(
ctx,
&lightsail.RegisterContainerImageInput{
ServiceName: &in.Service,
Label: &in.Label,
Digest: &digest,
},
)
if err != nil {
return err
}
fmt.Printf("Digest: %s\nImage %q registered.\nRefer to this image as %q in deployments.\n",
aws.ToString(registered.ContainerImage.Digest),
in.Image,
aws.ToString(registered.ContainerImage.Image))
return nil
}