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"