mirror of
https://github.com/DeusData/codebase-memory-mcp.git
synced 2026-11-04 10:48:20 +00:00
An image reference that names no registry host was stored under an invented one: `FROM nginx` became docker.io/library/nginx, `image: acme/web` docker.io/acme/web, and a local `docker build -t myapp` or a skaffold artifact `image: api` docker.io/library/myapp. docker.io is only Docker's default. Podman and CRI-O resolve a short name through a search list, mirrors rewrite it, and a local build tag may exist on no registry at all. The graph stated a host the code never names. An Image is now the repository as written, tag and digest dropped, with a `registry` property: the host the reference names, else "unknown". A stated host is kept as written; Docker Hub's spellings (docker.io, index.docker.io, registry-1.docker.io) are docker.io, with library/ for an official one-segment name. This holds for every source: FROM and COPY --from, compose services, K8s containers, shell and skaffold build tags, and the per-component Images of a repository built from several Dockerfiles. `FROM nginx` and `image: docker.io/library/nginx` are now two Image nodes. Relating them would state the host again, so the graph does not. The Image QN changes (__image__nginx instead of __image__docker.io/library/nginx), so CBM_INDEX_FORMAT_VERSION moves to 3. Refreshed in place, an older index would give only touched files the new identity and hold both forms of one image; every existing index is rebuilt once on its first index after upgrading. Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>