Skip to content

Commit 4420213

Browse files
committed
maintner/maintnerd: stop using gitlock, use go modules
And update to multi-stage Dockerfiles, simplifying the build and making it more consistent with others. Updates golang/go#26872 Change-Id: If26e19d73c9bdb996343468cd1cff8edc574cb17 Reviewed-on: https://go-review.googlesource.com/c/build/+/176603 Reviewed-by: Dmitri Shuralyov <[email protected]>
1 parent e06994e commit 4420213

File tree

3 files changed

+37
-208
lines changed

3 files changed

+37
-208
lines changed

maintner/maintnerd/Dockerfile

+33-4
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,37 @@
11
# Copyright 2017 The Go Authors. All rights reserved.
22
# Use of this source code is governed by a BSD-style
33
# license that can be found in the LICENSE file.
4-
FROM debian:jessie
4+
5+
FROM golang:1.12 AS build
6+
LABEL maintainer "[email protected]"
7+
8+
ENV GO111MODULE=on
9+
ENV GOPROXY=https://proxy.golang.org
10+
11+
RUN mkdir /gocache
12+
ENV GOCACHE /gocache
13+
14+
COPY go.mod /go/src/golang.org/x/build/go.mod
15+
COPY go.sum /go/src/golang.org/x/build/go.sum
16+
17+
WORKDIR /go/src/golang.org/x/build
18+
19+
# Optimization for iterative docker build speed, not necessary for correctness:
20+
# TODO: write a tool to make writing Go module-friendly Dockerfiles easier.
21+
RUN go install cloud.google.com/go/compute/metadata
22+
RUN go install cloud.google.com/go/storage
23+
RUN go install golang.org/x/crypto/acme/autocert
24+
RUN go install golang.org/x/net/http2
25+
RUN go install golang.org/x/time/rate
26+
RUN go install grpc.go4.org
27+
28+
COPY . /go/src/golang.org/x/build/
29+
WORKDIR /go/src/golang.org/x/build/
30+
31+
RUN go install golang.org/x/build/maintner/maintnerd
32+
33+
34+
FROM debian:stretch
535
LABEL maintainer "[email protected]"
636

737
# For interacting with the Go source & subrepos
@@ -10,7 +40,7 @@ RUN apt-get update && apt-get install -y \
1040
ca-certificates \
1141
git-core \
1242
openssh-client \
13-
gnupg \
43+
gnupg dirmngr \
1444
&& rm -rf /var/lib/apt/lists/*
1545

1646
# See https://github.com/golang/go/issues/23705
@@ -30,6 +60,5 @@ RUN mkdir -p ~/.ssh/ \
3060
&& echo "|1|HygGkfOGLovavKfixjXWFJ7Yk1I=|lb/724row8KDTMC1dZiJlHyjxWM= ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAq2A7hRGmdnm9tUDbO9IDSwBK6TbQa+PXYPCPy6rbTrTtw7PHkccKrpp0yVhp5HdEIcKr6pLlVDBfOLX9QUsyCOV0wzfjIJNlGEYsdlLJizHhbn2mUjvSAHQqZETYP81eFzLQNnPHt4EVVUh7VfDESU84KezmD5QlWpXLmvU31/yMf+Se8xhHTvKSCZIFImWwoG6mbUoWf9nzpIoaSjB+weqqUUmpaaasXVal72J+UX2B+2RPW3RcT0eOzQgqlJL3RKrTJvdsjE3JEAvGq3lGHSZXy28G3skua2SmVi/w4yCE6gbODqnTWlg7+wC604ydGXA8VJiS5ap43JXiUFFAaQ==" >> ~/.ssh/known_hosts \
3161
&& chmod 0600 ~/.ssh/known_hosts
3262

33-
COPY ca-certificates.crt /etc/ssl/certs/
34-
COPY maintnerd /
63+
COPY --from=build /go/bin/maintnerd /
3564
ENTRYPOINT ["/tini", "--", "/maintnerd"]

maintner/maintnerd/Dockerfile.0

-183
This file was deleted.

maintner/maintnerd/Makefile

+4-21
Original file line numberDiff line numberDiff line change
@@ -11,28 +11,11 @@ IMAGE_PROD := gcr.io/symbolic-datum-552/maintnerd
1111
DOCKER_IMAGE_build0=build0/maintnerd:latest
1212
DOCKER_CTR_build0=maintnerd-build0
1313

14-
build0: *.go Dockerfile.0
15-
docker build --force-rm -f Dockerfile.0 --tag=$(DOCKER_IMAGE_build0) ../..
16-
17-
maintnerd: build0
18-
docker create --name $(DOCKER_CTR_build0) $(DOCKER_IMAGE_build0)
19-
docker cp $(DOCKER_CTR_build0):/go/bin/$@ $@
20-
docker rm $(DOCKER_CTR_build0)
21-
22-
ca-certificates.crt:
23-
docker create --name $(DOCKER_CTR_build0) $(DOCKER_IMAGE_build0)
24-
docker cp $(DOCKER_CTR_build0):/etc/ssl/certs/$@ $@
25-
docker rm $(DOCKER_CTR_build0)
26-
27-
update-deps:
28-
go install golang.org/x/build/cmd/gitlock
29-
gitlock --update=Dockerfile.0 golang.org/x/build/maintner/maintnerd
30-
31-
docker-prod: Dockerfile maintnerd ca-certificates.crt
32-
docker build --force-rm --tag=$(IMAGE_PROD):$(VERSION) .
14+
docker-prod:
15+
docker build --force-rm -f Dockerfile --tag=$(IMAGE_PROD):$(VERSION) ../..
3316
docker tag $(IMAGE_PROD):$(VERSION) $(IMAGE_PROD):$(MUTABLE_VERSION)
34-
docker-staging: Dockerfile maintnerd ca-certificates.crt
35-
docker build --force-rm --tag=$(IMAGE_STAGING):$(VERSION) .
17+
docker-staging:
18+
docker build --force-rm -f Dockerfile --tag=$(IMAGE_STAGING):$(VERSION) ../..
3619
docker tag $(IMAGE_STAGING):$(VERSION) $(IMAGE_STAGING):$(MUTABLE_VERSION)
3720

3821
push-prod: docker-prod

0 commit comments

Comments
 (0)