cmd/xb: accept any golang or debian images as bases
Change-Id: Id2250ee095f1b3d967c25899a240eaa39d62fe39
Reviewed-on: https://go-review.googlesource.com/c/build/+/173358
Reviewed-by: David Chase <drchase@google.com>
diff --git a/cmd/xb/xb.go b/cmd/xb/xb.go
index 1bb16b5..48009dd 100644
--- a/cmd/xb/xb.go
+++ b/cmd/xb/xb.go
@@ -106,29 +106,6 @@
return buildenv.Staging
}
-var expectedGoLayerVersion = map[string]string{
- "golang:1.10": "go version go1.10.2 linux/amd64",
- "golang:1.11": "go version go1.11.5 linux/amd64",
-}
-
-func validateGoDockerVersion(layer, want string) {
- out, _ := exec.Command("docker", "run", "--rm", layer, "go", "version").Output()
- if strings.TrimSpace(string(out)) == want {
- return
- }
-
- out, err := exec.Command("docker", "pull", layer).CombinedOutput()
- if err != nil {
- log.Fatalf("failed to docker pull %s: %v, %s", layer, err, out)
- }
-
- out, err = exec.Command("docker", "run", "--rm", layer, "go", "version").CombinedOutput()
- if strings.TrimSpace(string(out)) == want {
- return
- }
- log.Fatalf("expected docker layer %s to have version %q; got err=%v, output=%s", layer, want, err, out)
-}
-
func runDocker() {
if flag.Arg(1) == "build" {
file := "Dockerfile"
@@ -139,19 +116,13 @@
}
layers := fromLayers(file)
for _, layer := range layers {
- if want, ok := expectedGoLayerVersion[layer]; ok {
- validateGoDockerVersion(layer, want)
+ if strings.HasPrefix(layer, "golang:") || strings.HasPrefix(layer, "debian:") {
continue
}
switch layer {
case "golang/buildlet-stage0":
log.Printf("building dependent layer %q", layer)
buildStage0Container()
- case "debian:jessie", "debian:stretch", "debian:buster", "golang:1.12-stretch":
- // TODO: validate version? probably doesn't matter, as they're
- // pretty frozen and just get security/bug updates, and most of
- // our Dockerfiles start with apt-get update && upgrade steps
- // anyway.
default:
log.Fatalf("unsupported layer %q; don't know how to validate or build", layer)
}