From b0d568e7d4e193cf366b1cbff32df6cd0834125d Mon Sep 17 00:00:00 2001 From: Krasi Georgiev Date: Sun, 29 Jul 2018 21:08:38 +0300 Subject: [PATCH 1/4] use multistage builds and build inside a container added a make file to build and push the image the dockerfile is refactored to use multi stage builds Signed-off-by: Krasi Georgiev --- Dockerfile | 19 +++++++++++++------ Makefile | 3 +++ README.md | 6 ++++++ 3 files changed, 22 insertions(+), 6 deletions(-) create mode 100644 Makefile diff --git a/Dockerfile b/Dockerfile index 82751d4..297db07 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,9 +1,16 @@ -FROM golang:1.8 +FROM golang:1.10 -ADD . /go/src/github.com/m-lab/alertmanager-github-receiver +WORKDIR /go/src/github.com/m-lab/alertmanager-github-receiver +ADD . ./ -# TODO(soltesz): vendor dependencies. -RUN go get -v github.com/m-lab/alertmanager-github-receiver/cmd/github_receiver +# TODO(soltesz): Use vgo for dependancies. +RUN go get -v ./... +RUN CGO_ENABLED=0 go build -o alertmanager-github-receiver cmd/github_receiver/main.go -# RUN go install -v -ENTRYPOINT ["/go/bin/github_receiver"] + +FROM alpine +RUN apk add --no-cache ca-certificates && \ + update-ca-certificates +WORKDIR /root/ +COPY --from=0 /go/src/github.com/m-lab/alertmanager-github-receiver/alertmanager-github-receiver ./ +ENTRYPOINT ["./alertmanager-github-receiver"] \ No newline at end of file diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..3ab266b --- /dev/null +++ b/Makefile @@ -0,0 +1,3 @@ +docker: + @docker build -t $(DOCKER_TAG) . + @docker push $(DOCKER_TAG) \ No newline at end of file diff --git a/README.md b/README.md index f3b1038..1d208e7 100644 --- a/README.md +++ b/README.md @@ -11,6 +11,12 @@ The alertmanager github receiver creates GitHub issues using [Alertmanager](https://github.com/prometheus/alertmanager) webhook notifications. +# Build +``` +make docker repo/imageName +``` +This will build the binary and push it to repo/imageName + # Setup ## Create GitHub access token From cdb185e5c48a120999d1d977673618069227ca56 Mon Sep 17 00:00:00 2001 From: Krasi Georgiev Date: Thu, 2 Aug 2018 12:31:16 +0300 Subject: [PATCH 2/4] changes from the PR review updated binary names and paths comment nits fix broken makefile example Signed-off-by: Krasi Georgiev --- Dockerfile | 10 +++++----- README.md | 4 ++-- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/Dockerfile b/Dockerfile index 297db07..5dec5a9 100644 --- a/Dockerfile +++ b/Dockerfile @@ -3,14 +3,14 @@ FROM golang:1.10 WORKDIR /go/src/github.com/m-lab/alertmanager-github-receiver ADD . ./ -# TODO(soltesz): Use vgo for dependancies. +# TODO(soltesz): Use vgo for dependencies. RUN go get -v ./... -RUN CGO_ENABLED=0 go build -o alertmanager-github-receiver cmd/github_receiver/main.go +RUN CGO_ENABLED=0 go get -v github.com/m-lab/alertmanager-github-receiver/cmd/github_receiver FROM alpine RUN apk add --no-cache ca-certificates && \ update-ca-certificates -WORKDIR /root/ -COPY --from=0 /go/src/github.com/m-lab/alertmanager-github-receiver/alertmanager-github-receiver ./ -ENTRYPOINT ["./alertmanager-github-receiver"] \ No newline at end of file +WORKDIR / +COPY --from=0 /go/bin/github_receiver ./ +ENTRYPOINT ["/github_receiver"] \ No newline at end of file diff --git a/README.md b/README.md index 1d208e7..dad8fec 100644 --- a/README.md +++ b/README.md @@ -13,9 +13,9 @@ notifications. # Build ``` -make docker repo/imageName +make docker DOCKER_TAG=repo/imageName ``` -This will build the binary and push it to repo/imageName +This will build the binary and push it to repo/imageName. # Setup From 603e2493f43f3a4826a1a55176c3d6e7bfed20e3 Mon Sep 17 00:00:00 2001 From: Krasi Georgiev Date: Thu, 2 Aug 2018 22:54:37 +0300 Subject: [PATCH 3/4] removed redundant go get Signed-off-by: Krasi Georgiev --- Dockerfile | 2 -- 1 file changed, 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 5dec5a9..e9ab5ac 100644 --- a/Dockerfile +++ b/Dockerfile @@ -4,10 +4,8 @@ WORKDIR /go/src/github.com/m-lab/alertmanager-github-receiver ADD . ./ # TODO(soltesz): Use vgo for dependencies. -RUN go get -v ./... RUN CGO_ENABLED=0 go get -v github.com/m-lab/alertmanager-github-receiver/cmd/github_receiver - FROM alpine RUN apk add --no-cache ca-certificates && \ update-ca-certificates From e9f53e882633d8390deaa9b2f71b98de0051b151 Mon Sep 17 00:00:00 2001 From: Krasi Georgiev Date: Thu, 2 Aug 2018 23:44:36 +0300 Subject: [PATCH 4/4] fix travis builds Signed-off-by: Krasi Georgiev --- .travis.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.travis.yml b/.travis.yml index 8212181..e4ad1f5 100644 --- a/.travis.yml +++ b/.travis.yml @@ -8,6 +8,9 @@ before_install: - go get github.com/mattn/goveralls - go get github.com/wadey/gocovmerge +install: +- go get -t ./... + # Unconditionally place the repo at GOPATH/src/${go_import_path} to support # forks. go_import_path: github.com/m-lab/alertmanager-github-receiver