bazel-toolchains icon indicating copy to clipboard operation
bazel-toolchains copied to clipboard

Why do image paths start with docker://?

Open luxe opened this issue 3 years ago • 1 comments

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.

luxe avatar Mar 31 '22 03:03 luxe

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 using skopeo login.

Maybe other bazel RBE engines use skopeo or some other similar tool/library that supports multiple image and repository types like this?

tgerdes-cohesity avatar Apr 20 '22 16:04 tgerdes-cohesity