Learn about troubleshooting steps that you might find helpful if you run into problems managing container images in Artifact Registry.
Cannot pull an image or deploy to a Google Cloud runtime environment
Check the following:
- Verify that the full path of the image that you are pushing is
correct. The path must include the registry hostname, Google Cloud,
project ID, repository, and image. For example:
For more information, see Repository and image names.us-west1-docker.pkg.dev/my-project/my-repo/my-image:v1
- Verify that the account that is pulling the image has the correct permissions to read from the repository. If you have disabled automatic role granting to service accounts, then you must grant Artifact Registry roles to the runtime service accounts.
- For Compute Engine, Cloud Run, and Google Kubernetes Engine service accounts,
you must grant the Artifact Registry Reader role
(
roles/artifactregistry.reader
) to the runtime service account. - For your Cloud Build service account, you must grant the
Artifact Registry Writer role (
roles/artifactregistry.writer
) to the service account that runs builds. - If you are using Docker or another third-party tool, you must:
- Grant permissions to the account that interacts with the repository.
- Configure the client to authenticate to the repository.
Cannot push an image to Artifact Registry
Try the following:
- Verify that the repository exists. Unlike Container Registry, repository creation is a separate operation from pushing the first image. If the repository does not exist, then create it.
- Verify that the full path of the image that you are pushing is correct. The
path must include the registry hostname, Google Cloud project ID,
repository, and image. For example:
us-west1-docker.pkg.dev/my-project/my-repo/my-image:v1
Each Artifact Registry repository is a separate resource, so you cannot push an image to a path without a repository. For example,
us-west1-docker.pkg.dev/my-project/my-image:v1
is an invalid image path.For more information, see Repository and image names.
- Verify that the account that is pushing the image has permissions to write to the repository. If you have disabled automatic role granting to service accounts, then you must grant Artifact Registry roles to the runtime service accounts.
- For Compute Engine, Cloud Run, and Google Kubernetes Engine service accounts,
you must grant the Artifact Registry Writer role
(
roles/artifactregistry.writer
) to the runtime service account. - For your Cloud Build service account, you must grant the
Artifact Registry Writer role (
roles/artifactregistry.writer
) to the service account that runs builds. - If Artifact Registry returned the message
The repository has enabled tag immutability
, then tag immutability is configured for the repository. You cannot push an image with a tag that is already used for another version of the same image in the repository. Try to push the image again with a tag that is not used by other stored versions of the image.To verify that the a repository is configured for immutable image tags, check the Immutable image tags column in the list of repositories in Google Cloud console or run the following command:
gcloud artifacts repositories describe REPOSITORY \ --project=PROJECT-ID \ --location=LOCATION
ImagePullBackOff and ErrImagePull messages
Messages with ImagePullBackOff
and ErrImagePull
indicate that an image
cannot be pulled from the registry by GKE.
- Verify the requirements to pull from Artifact Registry.
- Review the troubleshooting steps in the GKE documentation.