cmd/tip: don't install cmd/tip from the internet
Set the working directory in the Dockerfile to be inside the
golang.org/x/build module before running go install on cmd/tip.
Otherwise, it just installs the latest cmd/tip from the internet
rather than the intended local version. (All other Dockerfiles
in x/build had this line, except cmd/tip.)
Remove duplicate and unneeded WORKDIR instruction from two other
Dockerfiles to improve consistency.
Fix a rare race condition setting p.err when os.MkdirAll fails.
Add a log message when a new server has been started successfully
and the side switches. This will make logs easier to read.
Fixes golang/go#34526
Updates golang/go#34192
Change-Id: Iab8124f5c872fb87844e8e2f9b31637ce395f11b
Reviewed-on: https://go-review.googlesource.com/c/build/+/197302
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Reviewed-by: Benny Siegert <bsiegert@gmail.com>
diff --git a/cmd/gitmirror/Dockerfile b/cmd/gitmirror/Dockerfile
index d95561a..e66783f 100644
--- a/cmd/gitmirror/Dockerfile
+++ b/cmd/gitmirror/Dockerfile
@@ -30,7 +30,6 @@
RUN go install golang.org/x/build/maintner/godata
COPY . /go/src/golang.org/x/build/
-WORKDIR /go/src/golang.org/x/build/
RUN go install golang.org/x/build/cmd/gitmirror
diff --git a/cmd/tip/Dockerfile b/cmd/tip/Dockerfile
index 4ae8d96..994c394 100644
--- a/cmd/tip/Dockerfile
+++ b/cmd/tip/Dockerfile
@@ -9,6 +9,8 @@
COPY go.mod /go/src/golang.org/x/build/go.mod
COPY go.sum /go/src/golang.org/x/build/go.sum
+WORKDIR /go/src/golang.org/x/build
+
# Optimization for iterative docker build speed, not necessary for correctness:
# TODO: write a tool to make writing Go module-friendly Dockerfiles easier.
RUN go install golang.org/x/crypto/acme/autocert
diff --git a/cmd/tip/tip.go b/cmd/tip/tip.go
index c7fd161..424ecb9 100644
--- a/cmd/tip/tip.go
+++ b/cmd/tip/tip.go
@@ -203,7 +203,9 @@
dir := filepath.Join(os.TempDir(), "tip", newSide)
if err := os.MkdirAll(dir, 0755); err != nil {
+ p.mu.Lock()
p.err = err
+ p.mu.Unlock()
return
}
hostport := "localhost:8081"
@@ -256,6 +258,7 @@
}
p.cmd = cmd
p.err = nil // If we get this far, the process started successfully. Clear the error.
+ logger.Printf("success; starting to serve on side %v", newSide)
}
type serveOptions struct {
diff --git a/maintner/maintnerd/Dockerfile b/maintner/maintnerd/Dockerfile
index cd531a4..71da253 100644
--- a/maintner/maintnerd/Dockerfile
+++ b/maintner/maintnerd/Dockerfile
@@ -26,7 +26,6 @@
RUN go install grpc.go4.org
COPY . /go/src/golang.org/x/build/
-WORKDIR /go/src/golang.org/x/build/
RUN go install golang.org/x/build/maintner/maintnerd