@@ -105,19 +105,20 @@ func CheckPushPermissions(opts *config.KanikoOptions) error {
105105 continue
106106 }
107107
108+ registryName := destRef .Repository .Registry .Name ()
108109 // Historically kaniko was pre-configured by default with gcr credential helper,
109110 // in here we keep the backwards compatibility by enabling the GCR helper only
110- // when gcr.io is in one of the destinations.
111- if strings .Contains ( destRef . RegistryStr () , "gcr.io" ) {
111+ // when gcr.io (or pkg.dev) is in one of the destinations.
112+ if registryName == "gcr.io" || strings .HasSuffix ( registryName , ". gcr.io" ) || strings . HasSuffix ( registryName , ".pkg.dev " ) {
112113 // Checking for existence of docker.config as it's normally required for
113114 // authenticated registries and prevent overwriting user provided docker conf
114115 if _ , err := fs .Stat (DockerConfLocation ()); os .IsNotExist (err ) {
115- if err := execCommand ("docker-credential-gcr" , "configure-docker" ).Run (); err != nil {
116+ flags := fmt .Sprintf ("--registries=%s" , registryName )
117+ if err := execCommand ("docker-credential-gcr" , "configure-docker" , flags ).Run (); err != nil {
116118 return errors .Wrap (err , "error while configuring docker-credential-gcr helper" )
117119 }
118120 }
119121 }
120- registryName := destRef .Repository .Registry .Name ()
121122 if opts .Insecure || opts .InsecureRegistries .Contains (registryName ) {
122123 newReg , err := name .NewRegistry (registryName , name .WeakValidation , name .Insecure )
123124 if err != nil {
0 commit comments