Google's replacement for Container Registry that doesn't suck as much. It's basically a fancy storage bucket for your Docker images, npm packages, and other build artifacts, but with Google's typical over-engineering.
What It Actually Does
Stores your Docker images, Maven jars, npm packages, Python wheels, Go modules, and Helm charts in one place. The main selling point is that it integrates with Google Cloud without making you want to throw your laptop out the window (most of the time).
Gotcha: If your project ID has underscores (like my_awesome_project
), Docker daemon will randomly refuse to authenticate with a cryptic unauthorized: authentication required
error. Had this weird auth issue at 2am during a deploy, took forever to figure out it was fucking underscores in the project ID. Docker expects proper hostname parsing and underscores break it. Stack Overflow was full of unhelpful just use service accounts
responses.
You get three types of repositories:
- Standard repos: Your stuff
- Remote repos: Caches Docker Hub/npm registry so your builds don't break when those services have their weekly outage
- Virtual repos: Groups multiple repos so you only need one URL (because nobody wants to manage 15 different registry endpoints)
The Google Cloud Integration
Works with GKE, Cloud Run, and Compute Engine without the usual credential nightmare. Uses IAM for permissions, which is either great or terrible depending on how much you enjoy reading IAM documentation.
The authentication setup is actually pretty straightforward once you wrap your head around service accounts. Your CI/CD pipeline gets a service account, you give it the right permissions, and it just works. Until it doesn't, and then you spend 3 hours debugging why your builds suddenly can't push images.
Pro tip: Always run gcloud auth configure-docker --verbose
when setting up auth or you'll spend hours debugging mystery Error response from daemon: Get https://gcr.io/v2/: unauthorized
failures that make no fucking sense. The verbose flag shows exactly which auth configuration got missed - usually the registry endpoint isn't properly added to Docker's credential helper config.
Security Stuff
Built-in vulnerability scanning that actually finds things (unlike some other tools we won't name). Integrates with Binary Authorization if you're into that whole "policy enforcement" thing. VPC Service Controls keep your stuff locked down if you're paranoid about network security.
Reality check: The scanner caught a Log4j vulnerability in our base image that our previous tool missed completely. Saved us from the panic of 2021.
Artifact Registry is basically what Container Registry should have been from the start. Container Registry is in maintenance mode now, so migrate before Google kills it like they kill everything else.
Here's the technical shit that actually matters: