Why do image paths start with docker://?
The container-image property creates URIs that start with docker://.
pkg/rbeconfigsgen/rbeconfigsgen.go
87: "container-image": "docker://{{.ToolchainContainer}}",
I can't find any documentation online about the origins of using this prefix.
In fact, it doesn't seem to work using docker cli:
docker pull docker://l.gcr.io/google/rbe-ubuntu16-04@sha256:f6568d8168b14aafd1b707019927a63c2d37113a03bcee188218f99bd0327ea1
invalid reference format
My solution is to simply remove the prefix, but perhaps I'm missing something as to why it exists.
For context, we are ingesting the container-image as an exec_property in bazel buildfarm, but our implementation fails due to the same cli error I've shown. Should I just remove the prefix when we ingest the URI, or should it work as is? I'm wondering if I need to configure my system or docker to understand what docker:// means.
I also wasn't able to find any official documentation that call out the docker:// uri scheme when I reported this issue to the bazel buildfarm project. The closest thing I found was in the skopeo project. From their Readme:
Skopeo operates on the following image and repository types: ...
- docker://docker-reference An image in a registry implementing the "Docker Registry HTTP API V2". By default, uses the authorization state in
$XDG_RUNTIME_DIR/containers/auth.json, which is set usingskopeo login.
Maybe other bazel RBE engines use skopeo or some other similar tool/library that supports multiple image and repository types like this?