From c10276e788e049788db987921a1d1e5f8757fb5f Mon Sep 17 00:00:00 2001 From: Kelly Hair Date: Mon, 14 Sep 2020 16:51:45 +0000 Subject: [PATCH 01/28] Update Dockerfile --- Dockerfile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 417d312..ea138e4 100644 --- a/Dockerfile +++ b/Dockerfile @@ -14,7 +14,8 @@ RUN \ git clone https://github.com/minio/minio && cd minio && \ go install -v -ldflags "$(go run buildscripts/gen-ldflags.go)" -FROM alpine:3.10 +# Changing to use latest as I will not have access to this after leaving GitLab +FROM alpine:latest ENV MINIO_UPDATE off ENV MINIO_ACCESS_KEY_FILE=access_key \ From 20ddde3b63548a1048cdf3ac6dfde0ecfb3ba921 Mon Sep 17 00:00:00 2001 From: Kelly Hair Date: Mon, 14 Sep 2020 16:57:53 +0000 Subject: [PATCH 02/28] Update Dockerfile --- Dockerfile | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/Dockerfile b/Dockerfile index ea138e4..c8d12b1 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,9 +1,6 @@ -#Pulled from: https://hub.docker.com/r/minio/minio/dockerfile - -FROM golang:1.13-alpine - -LABEL maintainer="Kelly Hair " +FROM golang:1.14-alpine as builder +LABEL maintainer="MinIO Inc " ENV GOPATH /go ENV CGO_ENABLED 0 @@ -12,10 +9,9 @@ ENV GO111MODULE on RUN \ apk add --no-cache git && \ git clone https://github.com/minio/minio && cd minio && \ - go install -v -ldflags "$(go run buildscripts/gen-ldflags.go)" + git checkout master && go install -v -ldflags "$(go run buildscripts/gen-ldflags.go)" -# Changing to use latest as I will not have access to this after leaving GitLab -FROM alpine:latest +FROM alpine:3.12 ENV MINIO_UPDATE off ENV MINIO_ACCESS_KEY_FILE=access_key \ @@ -25,9 +21,9 @@ ENV MINIO_ACCESS_KEY_FILE=access_key \ EXPOSE 9000 -COPY --from=0 /go/bin/minio /usr/bin/minio -COPY --from=0 /go/minio/CREDITS /third_party/ -COPY --from=0 /go/minio/dockerscripts/docker-entrypoint.sh /usr/bin/ +COPY --from=builder /go/bin/minio /usr/bin/minio +COPY --from=builder /go/minio/CREDITS /third_party/ +COPY --from=builder /go/minio/dockerscripts/docker-entrypoint.sh /usr/bin/ RUN \ apk add --no-cache ca-certificates 'curl>7.61.0' 'su-exec>=0.2' && \ From 79e14321b2a087b2aafac81c74a86c67b7c652cb Mon Sep 17 00:00:00 2001 From: Kelly Hair Date: Mon, 14 Sep 2020 17:41:37 +0000 Subject: [PATCH 03/28] Update .gitlab-ci.yml --- .gitlab-ci.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 94b3e6f..c9891a7 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -27,6 +27,8 @@ buildx: changes: - Dockerfile - .gitlab-ci.yml + except: + - schedules deploy: image: docker:19.03 @@ -46,6 +48,8 @@ deploy: changes: - Dockerfile - .gitlab-ci.yml + except: + - schedules # ----- Weekly Build ----- From 46c69f55a6c328d09ffd9d675bd6db890f2a9ffa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=20Gl=C3=A4=C3=9F-St=C3=B6cker?= Date: Mon, 16 Nov 2020 13:58:52 +0100 Subject: [PATCH 04/28] added global docker vars to ci config --- .gitlab-ci.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index c9891a7..9119ca5 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -6,6 +6,10 @@ stages: - Weekly buildx - Weekly deploy +variables: + DOCKER_DRIVER: overlay + DOCKER_TLS_CERTDIR: "" + # ----- Ad hoc Builds ----- buildx: @@ -88,4 +92,4 @@ weekly:deploy: - docker buildx build --platform linux/amd64,linux/arm64,linux/arm/v7 --push -t $CI_REGISTRY_IMAGE . only: - schedules - - master \ No newline at end of file + - master From 9460a7b4db08e0551ca68fbdbb133bb20211a7a2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=20Gl=C3=A4=C3=9F-St=C3=B6cker?= Date: Thu, 15 Apr 2021 12:03:53 +0200 Subject: [PATCH 05/28] only build for armv7 for the moment --- .gitlab-ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 9119ca5..0cff233 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -47,7 +47,7 @@ deploy: script: - docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY - docker buildx create --use --name mybuilder - - docker buildx build --platform linux/amd64,linux/arm64,linux/arm/v7 --push -t $CI_REGISTRY_IMAGE . + - docker buildx build --platform linux/arm/v7 --push -t $CI_REGISTRY_IMAGE . only: changes: - Dockerfile @@ -89,7 +89,7 @@ weekly:deploy: script: - docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY - docker buildx create --use --name mybuilder - - docker buildx build --platform linux/amd64,linux/arm64,linux/arm/v7 --push -t $CI_REGISTRY_IMAGE . + - docker buildx build --platform linux/arm/v7 --push -t $CI_REGISTRY_IMAGE . only: - schedules - master From a686da6b42a3ca6c4d96e9b1ac5fce530408221d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=20Gl=C3=A4=C3=9F-St=C3=B6cker?= Date: Thu, 15 Apr 2021 12:12:28 +0200 Subject: [PATCH 06/28] try to build wiht golang 1.15 --- Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index c8d12b1..86f52a4 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM golang:1.14-alpine as builder +FROM golang:1.15-alpine as builder LABEL maintainer="MinIO Inc " @@ -33,4 +33,4 @@ ENTRYPOINT ["/usr/bin/docker-entrypoint.sh"] VOLUME ["/data"] -CMD ["minio"] \ No newline at end of file +CMD ["minio"] From 6ae2db23fe169d484ccff290d2a331c595cb0ad8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=20Gl=C3=A4=C3=9F-St=C3=B6cker?= Date: Thu, 15 Apr 2021 12:26:24 +0200 Subject: [PATCH 07/28] try to build with golang 1.13 --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 86f52a4..d3c754f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM golang:1.15-alpine as builder +FROM golang:1.13-alpine as builder LABEL maintainer="MinIO Inc " From 89ddb40b07eff0cde9b6bc3be232bdfd6c15a8b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=20Gl=C3=A4=C3=9F-St=C3=B6cker?= Date: Thu, 15 Apr 2021 12:39:43 +0200 Subject: [PATCH 08/28] build with 1.14 and try to build instead of install --- Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index d3c754f..44195b2 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM golang:1.13-alpine as builder +FROM golang:1.14-alpine as builder LABEL maintainer="MinIO Inc " @@ -9,7 +9,7 @@ ENV GO111MODULE on RUN \ apk add --no-cache git && \ git clone https://github.com/minio/minio && cd minio && \ - git checkout master && go install -v -ldflags "$(go run buildscripts/gen-ldflags.go)" + git checkout master && go build -v -ldflags "$(go run buildscripts/gen-ldflags.go)" FROM alpine:3.12 From 74fda793ec8c4cc71daae8053b09486795ebb371 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=20Gl=C3=A4=C3=9F-St=C3=B6cker?= Date: Thu, 15 Apr 2021 12:46:48 +0200 Subject: [PATCH 09/28] clone the release branch, not the master/dev branch of the upstream repo --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 44195b2..9e261b8 100644 --- a/Dockerfile +++ b/Dockerfile @@ -8,7 +8,7 @@ ENV GO111MODULE on RUN \ apk add --no-cache git && \ - git clone https://github.com/minio/minio && cd minio && \ + git clone -b release https://github.com/minio/minio && cd minio && \ git checkout master && go build -v -ldflags "$(go run buildscripts/gen-ldflags.go)" FROM alpine:3.12 From 222b33ed628398a5fd03f637384f620e75eb2889 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=20Gl=C3=A4=C3=9F-St=C3=B6cker?= Date: Thu, 15 Apr 2021 12:47:33 +0200 Subject: [PATCH 10/28] no gods, no masters! --- .gitlab-ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 0cff233..7eb09f5 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -74,7 +74,7 @@ weekly:buildx: - docker build --platform=local -o . ./docker-buildx only: - schedules - - master + - main weekly:deploy: image: docker:19.03 @@ -92,4 +92,4 @@ weekly:deploy: - docker buildx build --platform linux/arm/v7 --push -t $CI_REGISTRY_IMAGE . only: - schedules - - master + - main From f9e9c4ec71a5bb4396144ea2d2b2b94f7f06327a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=20Gl=C3=A4=C3=9F-St=C3=B6cker?= Date: Thu, 15 Apr 2021 12:59:52 +0200 Subject: [PATCH 11/28] yeah, clone the release branch and then checkout the master branch. 'doh! --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 9e261b8..23cdf8e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -9,7 +9,7 @@ ENV GO111MODULE on RUN \ apk add --no-cache git && \ git clone -b release https://github.com/minio/minio && cd minio && \ - git checkout master && go build -v -ldflags "$(go run buildscripts/gen-ldflags.go)" + git checkout release && go build -v -ldflags "$(go run buildscripts/gen-ldflags.go)" FROM alpine:3.12 From 40279c8377aa077d5355b6f01e1766d123fba246 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=20Gl=C3=A4=C3=9F-St=C3=B6cker?= Date: Thu, 15 Apr 2021 13:15:41 +0200 Subject: [PATCH 12/28] build with go 1.16 - now it should work... --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 23cdf8e..f27df3a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM golang:1.14-alpine as builder +FROM golang:1.16-alpine as builder LABEL maintainer="MinIO Inc " From 7365715b11fdd2294051414c73b8c047ee47744b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=20Gl=C3=A4=C3=9F-St=C3=B6cker?= Date: Thu, 15 Apr 2021 13:21:38 +0200 Subject: [PATCH 13/28] okay, go install is neccessary in this setup --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index f27df3a..084982d 100644 --- a/Dockerfile +++ b/Dockerfile @@ -9,7 +9,7 @@ ENV GO111MODULE on RUN \ apk add --no-cache git && \ git clone -b release https://github.com/minio/minio && cd minio && \ - git checkout release && go build -v -ldflags "$(go run buildscripts/gen-ldflags.go)" + git checkout release && go install -v -ldflags "$(go run buildscripts/gen-ldflags.go)" FROM alpine:3.12 From 5efa0b15b2fc40f179909dec8ddecd073d463335 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=20Gl=C3=A4=C3=9F-St=C3=B6cker?= Date: Thu, 15 Apr 2021 13:27:28 +0200 Subject: [PATCH 14/28] everything seems to work, so build for arm64 and amd64 again --- .gitlab-ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 7eb09f5..4e4497c 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -47,7 +47,7 @@ deploy: script: - docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY - docker buildx create --use --name mybuilder - - docker buildx build --platform linux/arm/v7 --push -t $CI_REGISTRY_IMAGE . + - docker buildx build --platform linux/amd64,linux/arm64,linux/arm/v7 --push -t $CI_REGISTRY_IMAGE . only: changes: - Dockerfile @@ -89,7 +89,7 @@ weekly:deploy: script: - docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY - docker buildx create --use --name mybuilder - - docker buildx build --platform linux/arm/v7 --push -t $CI_REGISTRY_IMAGE . + - docker buildx build --platform linux/amd64,linux/arm64,linux/arm/v7 --push -t $CI_REGISTRY_IMAGE . only: - schedules - main From ce0a2455fa5eb830f97a854aed326adbe328dd4e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=20Gl=C3=A4=C3=9F-St=C3=B6cker?= Date: Wed, 9 Jun 2021 13:50:48 +0200 Subject: [PATCH 15/28] new single-stage multiarch ci --- .gitlab-ci.yml | 100 +++++++------------------------------------------ 1 file changed, 13 insertions(+), 87 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 4e4497c..0a4d235 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,95 +1,21 @@ -# Credit -> https://stackoverflow.com/questions/58600986/gitlab-ci-trying-to-use-docker-buildx-to-build-for-arm64 - -stages: - - buildx - - deploy - - Weekly buildx - - Weekly deploy +image: registry.gitlab.tictex.eu/docker/docker-with-buildx-git:latest variables: - DOCKER_DRIVER: overlay + DOCKER_HOST: tcp://docker:2375/ + DOCKER_DRIVER: overlay2 DOCKER_TLS_CERTDIR: "" -# ----- Ad hoc Builds ----- +services: + - docker:dind -buildx: - image: docker:19.03-git - stage: buildx +build: + stage: build variables: - GIT_STRATEGY: none - artifacts: - paths: - - buildx - expire_in: 3 hour - services: - - docker:19.03-dind + IMAGE_TAG: $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG script: - - export DOCKER_BUILDKIT=1 - - git clone git://github.com/docker/buildx ./docker-buildx - - docker build --platform=local -o . ./docker-buildx - only: - changes: - - Dockerfile - - .gitlab-ci.yml - except: - - schedules - -deploy: - image: docker:19.03 - stage: deploy - services: - - name: docker:19.03-dind - command: ["--experimental"] - before_script: - - mkdir -p ~/.docker/cli-plugins - - mv buildx ~/.docker/cli-plugins/docker-buildx - - docker run --rm --privileged multiarch/qemu-user-static --reset -p yes - script: - - docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY + - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY - docker buildx create --use --name mybuilder - - docker buildx build --platform linux/amd64,linux/arm64,linux/arm/v7 --push -t $CI_REGISTRY_IMAGE . - only: - changes: - - Dockerfile - - .gitlab-ci.yml - except: - - schedules - -# ----- Weekly Build ----- - -weekly:buildx: - image: docker:19.03-git - stage: Weekly buildx - variables: - GIT_STRATEGY: none - artifacts: - paths: - - buildx - expire_in: 3 hour - services: - - docker:19.03-dind - script: - - export DOCKER_BUILDKIT=1 - - git clone git://github.com/docker/buildx ./docker-buildx - - docker build --platform=local -o . ./docker-buildx - only: - - schedules - - main - -weekly:deploy: - image: docker:19.03 - stage: Weekly deploy - services: - - name: docker:19.03-dind - command: ["--experimental"] - before_script: - - mkdir -p ~/.docker/cli-plugins - - mv buildx ~/.docker/cli-plugins/docker-buildx - - docker run --rm --privileged multiarch/qemu-user-static --reset -p yes - script: - - docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY - - docker buildx create --use --name mybuilder - - docker buildx build --platform linux/amd64,linux/arm64,linux/arm/v7 --push -t $CI_REGISTRY_IMAGE . - only: - - schedules - - main + - docker buildx build --platform linux/amd64,linux/arm64,linux/arm/v7 --push -t $IMAGE_TAG . + - docker pull $IMAGE_TAG + - docker tag $IMAGE_TAG $CI_REGISTRY_IMAGE:latest + - docker push $CI_REGISTRY_IMAGE:latest From 98bf3f9c8a79b5b93abd99a610c842d66b984afb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=20Gl=C3=A4=C3=9F-St=C3=B6cker?= Date: Thu, 10 Jun 2021 09:25:09 +0200 Subject: [PATCH 16/28] make build platforms configurable via CI var --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 0a4d235..5049b6d 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -15,7 +15,7 @@ build: script: - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY - docker buildx create --use --name mybuilder - - docker buildx build --platform linux/amd64,linux/arm64,linux/arm/v7 --push -t $IMAGE_TAG . + - docker buildx build --platform $BUILD_PLATFORMS --push -t $IMAGE_TAG . - docker pull $IMAGE_TAG - docker tag $IMAGE_TAG $CI_REGISTRY_IMAGE:latest - docker push $CI_REGISTRY_IMAGE:latest From fff395c3aaab319e1c3d50281a93bf04c1736d36 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=20Gl=C3=A4=C3=9F-St=C3=B6cker?= Date: Thu, 10 Jun 2021 09:25:32 +0200 Subject: [PATCH 17/28] unique buildx builder name to prevent hickups --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 5049b6d..b3bd7f3 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -14,7 +14,7 @@ build: IMAGE_TAG: $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG script: - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY - - docker buildx create --use --name mybuilder + - docker buildx create --use --name A$CI_COMMIT_SHORT_SHA - docker buildx build --platform $BUILD_PLATFORMS --push -t $IMAGE_TAG . - docker pull $IMAGE_TAG - docker tag $IMAGE_TAG $CI_REGISTRY_IMAGE:latest From a1c4e8f001fc813011488fd3c69100e1d10fc4a9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=20Gl=C3=A4=C3=9F-St=C3=B6cker?= Date: Wed, 16 Jun 2021 09:06:37 +0200 Subject: [PATCH 18/28] fixed the latest tag generation/push --- .gitlab-ci.yml | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index b3bd7f3..06810e8 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -15,7 +15,4 @@ build: script: - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY - docker buildx create --use --name A$CI_COMMIT_SHORT_SHA - - docker buildx build --platform $BUILD_PLATFORMS --push -t $IMAGE_TAG . - - docker pull $IMAGE_TAG - - docker tag $IMAGE_TAG $CI_REGISTRY_IMAGE:latest - - docker push $CI_REGISTRY_IMAGE:latest + - docker buildx build --platform $BUILD_PLATFORMS --push -t $IMAGE_TAG -t $CI_REGISTRY_IMAGE:latest . From a9a5f6cb75edb5b52ab5d495224a8ef5747b4b86 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=20Gl=C3=A4=C3=9F-St=C3=B6cker?= Date: Wed, 16 Jun 2021 09:14:24 +0200 Subject: [PATCH 19/28] also publish the images on docker hub --- .gitlab-ci.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 06810e8..73c6d88 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -12,7 +12,10 @@ build: stage: build variables: IMAGE_TAG: $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG + D_IMAGE_TAG: egon0/minio-multiarch:$CI_COMMIT_REF_SLUG + D_LATEST_TAG: egon0/minio-multiarch:latest script: - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY + - docker login -u $DOCKER_LOGIN -p $DOCKER_PASSWORD - docker buildx create --use --name A$CI_COMMIT_SHORT_SHA - - docker buildx build --platform $BUILD_PLATFORMS --push -t $IMAGE_TAG -t $CI_REGISTRY_IMAGE:latest . + - docker buildx build --platform $BUILD_PLATFORMS --push -t $IMAGE_TAG -t $CI_REGISTRY_IMAGE:latest -t $D_IMAGE_TAG -t $D_LATEST_TAG . From ef94273ee69a46a4e5683bc5bc04df93a72e6844 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=20Gl=C3=A4=C3=9F-St=C3=B6cker?= Date: Wed, 16 Jun 2021 14:50:56 +0200 Subject: [PATCH 20/28] tag the images with the build-date instead of the commit slug --- .gitlab-ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 73c6d88..ef215ca 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -11,8 +11,8 @@ services: build: stage: build variables: - IMAGE_TAG: $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG - D_IMAGE_TAG: egon0/minio-multiarch:$CI_COMMIT_REF_SLUG + IMAGE_TAG: $CI_REGISTRY_IMAGE:$(date +%Y-%m-%d) + D_IMAGE_TAG: egon0/minio-multiarch:$(date +%Y-%m-%d) D_LATEST_TAG: egon0/minio-multiarch:latest script: - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY From 0906c14ba94e0a300298b73b6814867ae72685d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=20Gl=C3=A4=C3=9F-St=C3=B6cker?= Date: Wed, 16 Jun 2021 15:05:10 +0200 Subject: [PATCH 21/28] get rid of the private registry base image and tag the images with the current date --- .gitlab-ci.yml | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index ef215ca..3b02330 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,4 +1,4 @@ -image: registry.gitlab.tictex.eu/docker/docker-with-buildx-git:latest +image: egon0/docker-with-buildx-and-git:latest variables: DOCKER_HOST: tcp://docker:2375/ @@ -11,11 +11,12 @@ services: build: stage: build variables: - IMAGE_TAG: $CI_REGISTRY_IMAGE:$(date +%Y-%m-%d) - D_IMAGE_TAG: egon0/minio-multiarch:$(date +%Y-%m-%d) + IMAGE_TAG: $CI_REGISTRY_IMAGE + D_IMAGE_TAG: egon0/minio-multiarch D_LATEST_TAG: egon0/minio-multiarch:latest script: + - echo $IMAGE_TAG:$(date +%Y-%m-%d) - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY - docker login -u $DOCKER_LOGIN -p $DOCKER_PASSWORD - docker buildx create --use --name A$CI_COMMIT_SHORT_SHA - - docker buildx build --platform $BUILD_PLATFORMS --push -t $IMAGE_TAG -t $CI_REGISTRY_IMAGE:latest -t $D_IMAGE_TAG -t $D_LATEST_TAG . + - docker buildx build --platform $BUILD_PLATFORMS --push -t $IMAGE_TAG:$(date +%Y-%m-%d) -t $CI_REGISTRY_IMAGE:latest -t $D_IMAGE_TAG:$(date +%Y-%m-%d) -t $D_LATEST_TAG . From af91e01939ac82c609c555ff7e0ce743dfd2d341 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=20Gl=C3=A4=C3=9F-St=C3=B6cker?= Date: Wed, 23 Jun 2021 22:22:11 +0200 Subject: [PATCH 22/28] we are tagging the images from github releases now and build only if there is a new release --- .gitlab-ci.yml | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 3b02330..f6882f1 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -15,8 +15,17 @@ build: D_IMAGE_TAG: egon0/minio-multiarch D_LATEST_TAG: egon0/minio-multiarch:latest script: - - echo $IMAGE_TAG:$(date +%Y-%m-%d) - - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY - - docker login -u $DOCKER_LOGIN -p $DOCKER_PASSWORD - - docker buildx create --use --name A$CI_COMMIT_SHORT_SHA - - docker buildx build --platform $BUILD_PLATFORMS --push -t $IMAGE_TAG:$(date +%Y-%m-%d) -t $CI_REGISTRY_IMAGE:latest -t $D_IMAGE_TAG:$(date +%Y-%m-%d) -t $D_LATEST_TAG . + - > + apk add --no-cache jq; + LATEST_MINIO_GITHUB=$(wget --quiet "https://api.github.com/repos/minio/minio/releases/latest" -O - | jq -r '.tag_name'); + LATEST_MINIO_DHUB=$(wget -q https://registry.hub.docker.com/v1/repositories/egon0/minio-multiarch/tags -O - | sed -e 's/[][]//g' -e 's/"//g' -e 's/ //g' | tr '}' '\n' | awk -F: '{print $3}' | tail -n1); + if [ "$LATEST_MINIO_GITHUB" != "$LATEST_MINIO_DHUB" ] + then + docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY + docker login -u $DOCKER_LOGIN -p $DOCKER_PASSWORD + docker buildx create --use --name A$CI_COMMIT_SHORT_SHA + docker buildx build --platform $BUILD_PLATFORMS --push -t $IMAGE_TAG:$LATEST_MINIO_GITHUB -t $CI_REGISTRY_IMAGE:latest -t $D_IMAGE_TAG:$LATEST_MINIO_GITHUB -t $D_LATEST_TAG . + else + return true + fi + From dc69f4a6f4066b7f055d391622a908aa16429442 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=20Gl=C3=A4=C3=9F-St=C3=B6cker?= Date: Wed, 23 Jun 2021 22:28:59 +0200 Subject: [PATCH 23/28] we need to return 1 if nothing is to do, not true --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index f6882f1..edc7c7e 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -26,6 +26,6 @@ build: docker buildx create --use --name A$CI_COMMIT_SHORT_SHA docker buildx build --platform $BUILD_PLATFORMS --push -t $IMAGE_TAG:$LATEST_MINIO_GITHUB -t $CI_REGISTRY_IMAGE:latest -t $D_IMAGE_TAG:$LATEST_MINIO_GITHUB -t $D_LATEST_TAG . else - return true + return 1 fi From cc06145256d2804304feee40ee5a446eeea3a3e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=20Gl=C3=A4=C3=9F-St=C3=B6cker?= Date: Wed, 23 Jun 2021 22:30:09 +0200 Subject: [PATCH 24/28] nope, we need to return 0 ;) --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index edc7c7e..b37096e 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -26,6 +26,6 @@ build: docker buildx create --use --name A$CI_COMMIT_SHORT_SHA docker buildx build --platform $BUILD_PLATFORMS --push -t $IMAGE_TAG:$LATEST_MINIO_GITHUB -t $CI_REGISTRY_IMAGE:latest -t $D_IMAGE_TAG:$LATEST_MINIO_GITHUB -t $D_LATEST_TAG . else - return 1 + return 0 fi From 1fc9cd8b3e72226cdf1b3a403fbbf8201abbb863 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=20Gl=C3=A4=C3=9F-St=C3=B6cker?= Date: Wed, 23 Jun 2021 22:40:23 +0200 Subject: [PATCH 25/28] we need to get the latest tag an work with it in the dockerfile also --- Dockerfile | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/Dockerfile b/Dockerfile index 084982d..9c55eaa 100644 --- a/Dockerfile +++ b/Dockerfile @@ -7,9 +7,11 @@ ENV CGO_ENABLED 0 ENV GO111MODULE on RUN \ - apk add --no-cache git && \ - git clone -b release https://github.com/minio/minio && cd minio && \ - git checkout release && go install -v -ldflags "$(go run buildscripts/gen-ldflags.go)" + apk add --no-cache git jq && \ + git config --global advice.detachedHead false && \ + LATEST_MINIO_GITHUB=$(wget --quiet "https://api.github.com/repos/minio/minio/releases/latest" -O - | jq -r '.tag_name'); \ + git clone https://github.com/minio/minio && cd minio && \ + git checkout "$LATEST_MINIO_GITHUB" && go install -v -ldflags "$(go run buildscripts/gen-ldflags.go)" FROM alpine:3.12 From 01b5a431d733410868f98ea9837fe7f8362499ef Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Sat, 23 Jul 2022 09:25:46 +0000 Subject: [PATCH 26/28] Add renovate.json --- renovate.json | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 renovate.json diff --git a/renovate.json b/renovate.json new file mode 100644 index 0000000..7190a60 --- /dev/null +++ b/renovate.json @@ -0,0 +1,3 @@ +{ + "$schema": "https://docs.renovatebot.com/renovate-schema.json" +} From 721240018a8c55b99ebdf4feeb7ee2520b2ef829 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Sun, 24 Jul 2022 08:01:39 +0000 Subject: [PATCH 27/28] Update dependency golang to v1.18 --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 9c55eaa..7947b32 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM golang:1.16-alpine as builder +FROM golang:1.18-alpine as builder LABEL maintainer="MinIO Inc " From 773a54100c883e7fd970db957f6e60b89cbee7f7 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Sun, 24 Jul 2022 11:31:08 +0000 Subject: [PATCH 28/28] Update dependency alpine to v3.16 --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 7947b32..3cd9b15 100644 --- a/Dockerfile +++ b/Dockerfile @@ -13,7 +13,7 @@ RUN \ git clone https://github.com/minio/minio && cd minio && \ git checkout "$LATEST_MINIO_GITHUB" && go install -v -ldflags "$(go run buildscripts/gen-ldflags.go)" -FROM alpine:3.12 +FROM alpine:3.16 ENV MINIO_UPDATE off ENV MINIO_ACCESS_KEY_FILE=access_key \