From 8c89e535f9aedcd0ca5a170405e287fca643721d Mon Sep 17 00:00:00 2001 From: Pierre Mdawar Date: Sat, 5 Jan 2019 14:52:10 +0200 Subject: [PATCH 1/2] [Dockerfile] add new alpine build stage --- Dockerfile | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/Dockerfile b/Dockerfile index d0f06fe6..45f62f40 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,7 +1,7 @@ # # build container # -FROM golang:1-alpine +FROM golang:1-alpine as builder WORKDIR /go/src/github.com/oliver006/redis_exporter/ ADD main.go /go/src/github.com/oliver006/redis_exporter/ @@ -20,15 +20,25 @@ RUN CGO_ENABLED=0 GOOS=linux go build -o /redis_exporter \ -ldflags "-s -w -extldflags \"-static\" -X main.VERSION=$TAG -X main.COMMIT_SHA1=$SHA1 -X main.BUILD_DATE=$DATE" . +# +# Alpine release container +# +FROM alpine as alpine + +COPY --from=builder /redis_exporter /redis_exporter +COPY --from=builder /etc/ssl/certs /etc/ssl/certs + +EXPOSE 9121 +ENTRYPOINT [ "/redis_exporter" ] # # release container # -FROM scratch +FROM scratch as scratch -COPY --from=0 /redis_exporter /redis_exporter -COPY --from=0 /etc/ssl/certs /etc/ssl/certs +COPY --from=builder /redis_exporter /redis_exporter +COPY --from=builder /etc/ssl/certs /etc/ssl/certs EXPOSE 9121 ENTRYPOINT [ "/redis_exporter" ] From 15aadb19073c394e3b0453f423062b0c74d9eba7 Mon Sep 17 00:00:00 2001 From: Pierre Mdawar Date: Sat, 5 Jan 2019 14:53:24 +0200 Subject: [PATCH 2/2] [build.sh] use multiple tags in the build command and build the alpine image --- build.sh | 37 +++++++++++++++++++++++++------------ 1 file changed, 25 insertions(+), 12 deletions(-) diff --git a/build.sh b/build.sh index 0a51dbea..6a9dc58d 100755 --- a/build.sh +++ b/build.sh @@ -12,18 +12,31 @@ echo "docker login done" export BUILD_ARGS="--rm=false --build-arg TAG=${CIRCLE_TAG} --build-arg SHA1=${CIRCLE_SHA1} --build-arg DATE=$(date +%F-%T)" echo "BUILD_ARGS: $BUILD_ARGS" -docker build -t "21zoo/redis_exporter:$CIRCLE_TAG" $BUILD_ARGS . -docker push "21zoo/redis_exporter:$CIRCLE_TAG" - -docker build -t "21zoo/redis_exporter:latest" $BUILD_ARGS . -docker push "21zoo/redis_exporter:latest" - -docker build -t "oliver006/redis_exporter:$CIRCLE_TAG" $BUILD_ARGS . -docker push "oliver006/redis_exporter:$CIRCLE_TAG" - -docker build -t "oliver006/redis_exporter:latest" $BUILD_ARGS . -docker push "oliver006/redis_exporter:latest" - +# Scratch image +docker build --target scratch \ + -t "21zoo/redis_exporter:$CIRCLE_TAG" \ + -t "21zoo/redis_exporter:latest" \ + -t "oliver006/redis_exporter:$CIRCLE_TAG" \ + -t "oliver006/redis_exporter:latest" \ + $BUILD_ARGS . + +docker push "21zoo/redis_exporter:$CIRCLE_TAG" +docker push "21zoo/redis_exporter:latest" +docker push "oliver006/redis_exporter:$CIRCLE_TAG" +docker push "oliver006/redis_exporter:latest" + +# Alpine image +docker build --target alpine \ + -t "21zoo/redis_exporter:$CIRCLE_TAG-alpine" \ + -t "21zoo/redis_exporter:alpine" \ + -t "oliver006/redis_exporter:$CIRCLE_TAG-alpine" \ + -t "oliver006/redis_exporter:alpine" \ + $BUILD_ARGS . + +docker push "21zoo/redis_exporter:$CIRCLE_TAG-alpine" +docker push "21zoo/redis_exporter:alpine" +docker push "oliver006/redis_exporter:$CIRCLE_TAG-alpine" +docker push "oliver006/redis_exporter:alpine" echo "Building binaries for Github"