From 605e0bd798cafbe6d53855c7a1c43cfa4f5e548a Mon Sep 17 00:00:00 2001 From: Kelly Hair Date: Tue, 14 Apr 2020 19:54:40 +0000 Subject: [PATCH 01/36] Add new file --- .gitlab-ci.yml | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 .gitlab-ci.yml diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000..1d3092d --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,28 @@ +# This file is a template, and might need editing before it works on your project. +docker-build-master: + # Official docker image. + image: docker:latest + stage: build + services: + - docker:dind + before_script: + - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY + script: + - docker build --pull -t "$CI_REGISTRY_IMAGE" . + - docker push "$CI_REGISTRY_IMAGE" + only: + - master + +docker-build: + # Official docker image. + image: docker:latest + stage: build + services: + - docker:dind + before_script: + - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY + script: + - docker build --pull -t "$CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG" . + - docker push "$CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG" + except: + - master From e3b3b111832eb8475a496890412ad5e9901e88bb Mon Sep 17 00:00:00 2001 From: Kelly Hair Date: Tue, 14 Apr 2020 15:56:12 -0400 Subject: [PATCH 02/36] Docker version output Needed for buildx --- .gitlab-ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 1d3092d..518f9f9 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -8,6 +8,7 @@ docker-build-master: before_script: - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY script: + - docker --version - docker build --pull -t "$CI_REGISTRY_IMAGE" . - docker push "$CI_REGISTRY_IMAGE" only: From 638e508c06a135de6296f1bcb994994e39cb9c0b Mon Sep 17 00:00:00 2001 From: Kelly Hair Date: Tue, 14 Apr 2020 15:59:14 -0400 Subject: [PATCH 03/36] Version of Docker is... --- .gitlab-ci.yml | 19 ------------------- 1 file changed, 19 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 518f9f9..fa43538 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -5,25 +5,6 @@ docker-build-master: stage: build services: - docker:dind - before_script: - - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY script: - docker --version - - docker build --pull -t "$CI_REGISTRY_IMAGE" . - - docker push "$CI_REGISTRY_IMAGE" - only: - - master -docker-build: - # Official docker image. - image: docker:latest - stage: build - services: - - docker:dind - before_script: - - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY - script: - - docker build --pull -t "$CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG" . - - docker push "$CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG" - except: - - master From b2cb2249030ac776bda58ec541d3acd1b31ac9b8 Mon Sep 17 00:00:00 2001 From: Kelly Hair Date: Tue, 14 Apr 2020 16:08:44 -0400 Subject: [PATCH 04/36] Exploring if buildx can be installed on runners --- .gitlab-ci.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index fa43538..f2b9c6b 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -7,4 +7,11 @@ docker-build-master: - docker:dind script: - docker --version + - mkdir -p ~/.docker/cli-plugins + - ls -ltar ~/.docker + - ls -ltar ~/.docker/cli-plugins + - wget https://github.com/docker/buildx/releases/download/v0.3.1/buildx-v0.3.1.linux-arm64 + - mv buildx* ~/.docker/cli-plugins/buildx + - ls -ltar ~/.docker/cli-plugins + # - export DOCKER_BUILDKIT=1 From ee7de8d9f8ce6d52440ec855eef2b9343a39df09 Mon Sep 17 00:00:00 2001 From: Kelly Hair Date: Tue, 14 Apr 2020 16:37:31 -0400 Subject: [PATCH 05/36] First go around with buildx --- .gitlab-ci.yml | 33 +++++++++++++++++++++------------ Dockerfile | 39 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 60 insertions(+), 12 deletions(-) create mode 100644 Dockerfile diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index f2b9c6b..4b97a4b 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,17 +1,26 @@ -# This file is a template, and might need editing before it works on your project. -docker-build-master: - # Official docker image. +stages: + - docker builds + +build:ARM64: + stage: docker builds image: docker:latest - stage: build + variables: + DOCKER_HOST: tcp://docker:2375/ + DOCKER_DRIVER: overlay2 services: - docker:dind script: - - docker --version - - mkdir -p ~/.docker/cli-plugins - - ls -ltar ~/.docker - - ls -ltar ~/.docker/cli-plugins - - wget https://github.com/docker/buildx/releases/download/v0.3.1/buildx-v0.3.1.linux-arm64 +# Current thinking is to add build the container & tag with both the date +# in YYYY-mm-dd-h-m-s format as well as "latest": + - wget https://github.com/docker/buildx/releases/download/v0.3.1/buildx-v0.3.1.linux-amd64 - mv buildx* ~/.docker/cli-plugins/buildx - - ls -ltar ~/.docker/cli-plugins - # - export DOCKER_BUILDKIT=1 - + - chmod a+x ~/.docker/cli-plugins/docker-buildx + - docker buildx build . + # - timestamp=$(date +%Y%m%d%H%M%S) + # - cd $CI_PROJECT_DIR/ + # - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY + # - docker build --no-cache . -t minio-arm64 + # - docker tag minio-arm64 registry.gitlab.com/$CI_PROJECT_PATH/minio-arm64latest + # - docker tag minio-arm64 registry.gitlab.com/$CI_PROJECT_PATH/minio-arm64:$timestamp + # - docker push registry.gitlab.com/$CI_PROJECT_PATH/minio-arm64:latest + # - docker push registry.gitlab.com/$CI_PROJECT_PATH/minio-arm64:$timestamp \ No newline at end of file diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..417d312 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,39 @@ +#Pulled from: https://hub.docker.com/r/minio/minio/dockerfile + +FROM golang:1.13-alpine + +LABEL maintainer="Kelly Hair " + + +ENV GOPATH /go +ENV CGO_ENABLED 0 +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)" + +FROM alpine:3.10 + +ENV MINIO_UPDATE off +ENV MINIO_ACCESS_KEY_FILE=access_key \ + MINIO_SECRET_KEY_FILE=secret_key \ + MINIO_KMS_MASTER_KEY_FILE=kms_master_key \ + MINIO_SSE_MASTER_KEY_FILE=sse_master_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/ + +RUN \ + apk add --no-cache ca-certificates 'curl>7.61.0' 'su-exec>=0.2' && \ + echo 'hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4' >> /etc/nsswitch.conf + +ENTRYPOINT ["/usr/bin/docker-entrypoint.sh"] + +VOLUME ["/data"] + +CMD ["minio"] \ No newline at end of file From a2eac96895800f407b9ac79007d4c5348d0b0873 Mon Sep 17 00:00:00 2001 From: Kelly Hair Date: Tue, 14 Apr 2020 16:41:01 -0400 Subject: [PATCH 06/36] Another run --- .gitlab-ci.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 4b97a4b..0b16a97 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -13,8 +13,9 @@ build:ARM64: # Current thinking is to add build the container & tag with both the date # in YYYY-mm-dd-h-m-s format as well as "latest": - wget https://github.com/docker/buildx/releases/download/v0.3.1/buildx-v0.3.1.linux-amd64 - - mv buildx* ~/.docker/cli-plugins/buildx + - mv buildx* ~/.docker/cli-plugins/docker-buildx - chmod a+x ~/.docker/cli-plugins/docker-buildx + - ls -ltar ~/.docker/cli-plugins/ - docker buildx build . # - timestamp=$(date +%Y%m%d%H%M%S) # - cd $CI_PROJECT_DIR/ From 84100f6078337d628564ccc6da494d9c4e9c4d70 Mon Sep 17 00:00:00 2001 From: Kelly Hair Date: Tue, 14 Apr 2020 16:44:23 -0400 Subject: [PATCH 07/36] Adding directory --- .gitlab-ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 0b16a97..f7fea4c 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -13,6 +13,7 @@ build:ARM64: # Current thinking is to add build the container & tag with both the date # in YYYY-mm-dd-h-m-s format as well as "latest": - wget https://github.com/docker/buildx/releases/download/v0.3.1/buildx-v0.3.1.linux-amd64 + - mkdir ~/.docker/cli-plugins/ - mv buildx* ~/.docker/cli-plugins/docker-buildx - chmod a+x ~/.docker/cli-plugins/docker-buildx - ls -ltar ~/.docker/cli-plugins/ From 2ab2d53dad7af9e42ec3fa6556f5bb897394560c Mon Sep 17 00:00:00 2001 From: Kelly Hair Date: Tue, 14 Apr 2020 16:46:54 -0400 Subject: [PATCH 08/36] Troubleshooting --- .gitlab-ci.yml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index f7fea4c..8209904 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -12,10 +12,11 @@ build:ARM64: script: # Current thinking is to add build the container & tag with both the date # in YYYY-mm-dd-h-m-s format as well as "latest": + - docker buildx build . - wget https://github.com/docker/buildx/releases/download/v0.3.1/buildx-v0.3.1.linux-amd64 - - mkdir ~/.docker/cli-plugins/ - - mv buildx* ~/.docker/cli-plugins/docker-buildx - - chmod a+x ~/.docker/cli-plugins/docker-buildx + - mkdir /root/.docker/cli-plugins/ + - mv buildx* /root/.docker/cli-plugins/docker-buildx + - chmod a+x /root/.docker/cli-plugins/docker-buildx - ls -ltar ~/.docker/cli-plugins/ - docker buildx build . # - timestamp=$(date +%Y%m%d%H%M%S) From 6df2ce51678b62b2c02b4715a00a11c5856d5b3c Mon Sep 17 00:00:00 2001 From: Kelly Hair Date: Tue, 14 Apr 2020 16:48:31 -0400 Subject: [PATCH 09/36] Still troubleshooting --- .gitlab-ci.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 8209904..7a1ac0c 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -12,7 +12,6 @@ build:ARM64: script: # Current thinking is to add build the container & tag with both the date # in YYYY-mm-dd-h-m-s format as well as "latest": - - docker buildx build . - wget https://github.com/docker/buildx/releases/download/v0.3.1/buildx-v0.3.1.linux-amd64 - mkdir /root/.docker/cli-plugins/ - mv buildx* /root/.docker/cli-plugins/docker-buildx From 1d256d41e8136c6a0a70cd14ffb1bf09396e0fd8 Mon Sep 17 00:00:00 2001 From: Kelly Hair Date: Tue, 14 Apr 2020 16:52:18 -0400 Subject: [PATCH 10/36] yet.. more troubleshooting --- .gitlab-ci.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 7a1ac0c..73d8feb 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -12,11 +12,13 @@ build:ARM64: script: # Current thinking is to add build the container & tag with both the date # in YYYY-mm-dd-h-m-s format as well as "latest": + - whoami + - cd ~ - wget https://github.com/docker/buildx/releases/download/v0.3.1/buildx-v0.3.1.linux-amd64 - - mkdir /root/.docker/cli-plugins/ + - mkdir ~/.docker/cli-plugins - mv buildx* /root/.docker/cli-plugins/docker-buildx - chmod a+x /root/.docker/cli-plugins/docker-buildx - - ls -ltar ~/.docker/cli-plugins/ + - ls -ltar ~/.docker/cli-plugins - docker buildx build . # - timestamp=$(date +%Y%m%d%H%M%S) # - cd $CI_PROJECT_DIR/ From 85d08a312b206e823b10f583363f929fe116ce70 Mon Sep 17 00:00:00 2001 From: Kelly Hair Date: Tue, 14 Apr 2020 16:54:56 -0400 Subject: [PATCH 11/36] One more time --- .gitlab-ci.yml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 73d8feb..c655ddc 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -15,9 +15,10 @@ build:ARM64: - whoami - cd ~ - wget https://github.com/docker/buildx/releases/download/v0.3.1/buildx-v0.3.1.linux-amd64 - - mkdir ~/.docker/cli-plugins - - mv buildx* /root/.docker/cli-plugins/docker-buildx - - chmod a+x /root/.docker/cli-plugins/docker-buildx + - mkdir -p ~/.docker/cli-plugins + - ls -ltar ~/.docker + - mv buildx* ~/.docker/cli-plugins/docker-buildx + - chmod a+x ~/.docker/cli-plugins/docker-buildx - ls -ltar ~/.docker/cli-plugins - docker buildx build . # - timestamp=$(date +%Y%m%d%H%M%S) From 5edb9bfd13a6e0ebea995c1b29126e30915396ff Mon Sep 17 00:00:00 2001 From: Kelly Hair Date: Tue, 14 Apr 2020 16:58:09 -0400 Subject: [PATCH 12/36] buildx loading First go around with build --- .gitlab-ci.yml | 21 ++++++++------------- 1 file changed, 8 insertions(+), 13 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index c655ddc..ad9f65f 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -12,20 +12,15 @@ build:ARM64: script: # Current thinking is to add build the container & tag with both the date # in YYYY-mm-dd-h-m-s format as well as "latest": - - whoami - - cd ~ - wget https://github.com/docker/buildx/releases/download/v0.3.1/buildx-v0.3.1.linux-amd64 - mkdir -p ~/.docker/cli-plugins - - ls -ltar ~/.docker - mv buildx* ~/.docker/cli-plugins/docker-buildx - chmod a+x ~/.docker/cli-plugins/docker-buildx - - ls -ltar ~/.docker/cli-plugins - - docker buildx build . - # - timestamp=$(date +%Y%m%d%H%M%S) - # - cd $CI_PROJECT_DIR/ - # - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY - # - docker build --no-cache . -t minio-arm64 - # - docker tag minio-arm64 registry.gitlab.com/$CI_PROJECT_PATH/minio-arm64latest - # - docker tag minio-arm64 registry.gitlab.com/$CI_PROJECT_PATH/minio-arm64:$timestamp - # - docker push registry.gitlab.com/$CI_PROJECT_PATH/minio-arm64:latest - # - docker push registry.gitlab.com/$CI_PROJECT_PATH/minio-arm64:$timestamp \ No newline at end of file + - timestamp=$(date +%Y%m%d%H%M%S) + - cd $CI_PROJECT_DIR/ + - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY + - docker buildx build --no-cache . -t minio-arm64 + - docker tag minio-arm64 registry.gitlab.com/$CI_PROJECT_PATH/minio-arm64latest + - docker tag minio-arm64 registry.gitlab.com/$CI_PROJECT_PATH/minio-arm64:$timestamp + - docker push registry.gitlab.com/$CI_PROJECT_PATH/minio-arm64:latest + - docker push registry.gitlab.com/$CI_PROJECT_PATH/minio-arm64:$timestamp \ No newline at end of file From 01ce17ff4c1eca6ad1ad9120ee813a06ee6bb443 Mon Sep 17 00:00:00 2001 From: Kelly Hair Date: Tue, 14 Apr 2020 17:03:14 -0400 Subject: [PATCH 13/36] Two changes missing colon; missing --platform flag --- .gitlab-ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index ad9f65f..bd67876 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -19,8 +19,8 @@ build:ARM64: - timestamp=$(date +%Y%m%d%H%M%S) - cd $CI_PROJECT_DIR/ - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY - - docker buildx build --no-cache . -t minio-arm64 - - docker tag minio-arm64 registry.gitlab.com/$CI_PROJECT_PATH/minio-arm64latest + - docker buildx build --platform linux/arm64 --no-cache . -t minio-arm64 + - docker tag minio-arm64 registry.gitlab.com/$CI_PROJECT_PATH/minio-arm64:latest - docker tag minio-arm64 registry.gitlab.com/$CI_PROJECT_PATH/minio-arm64:$timestamp - docker push registry.gitlab.com/$CI_PROJECT_PATH/minio-arm64:latest - docker push registry.gitlab.com/$CI_PROJECT_PATH/minio-arm64:$timestamp \ No newline at end of file From 6ba94591d5dc8153c00a1ddc7f1dd21b4a89ff80 Mon Sep 17 00:00:00 2001 From: Kelly Hair Date: Tue, 14 Apr 2020 17:11:06 -0400 Subject: [PATCH 14/36] Adding quotes if this still fails then will install qemu required tools --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index bd67876..6782db0 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -19,7 +19,7 @@ build:ARM64: - timestamp=$(date +%Y%m%d%H%M%S) - cd $CI_PROJECT_DIR/ - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY - - docker buildx build --platform linux/arm64 --no-cache . -t minio-arm64 + - docker buildx build --platform "linux/arm64" --no-cache . -t minio-arm64 - docker tag minio-arm64 registry.gitlab.com/$CI_PROJECT_PATH/minio-arm64:latest - docker tag minio-arm64 registry.gitlab.com/$CI_PROJECT_PATH/minio-arm64:$timestamp - docker push registry.gitlab.com/$CI_PROJECT_PATH/minio-arm64:latest From 5960a981259cc39d1a995156c65498ccaf17fe2f Mon Sep 17 00:00:00 2001 From: Kelly Hair Date: Tue, 14 Apr 2020 17:16:02 -0400 Subject: [PATCH 15/36] May not be using buildx properly.. --- .gitlab-ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 6782db0..e9f28ef 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -12,6 +12,7 @@ build:ARM64: script: # Current thinking is to add build the container & tag with both the date # in YYYY-mm-dd-h-m-s format as well as "latest": + - docker run --rm --privileged multiarch/qemu-user-static --reset -p yes - wget https://github.com/docker/buildx/releases/download/v0.3.1/buildx-v0.3.1.linux-amd64 - mkdir -p ~/.docker/cli-plugins - mv buildx* ~/.docker/cli-plugins/docker-buildx From 8720e77bcf93d195b402ca2610ce6f3790692993 Mon Sep 17 00:00:00 2001 From: Kelly Hair Date: Tue, 14 Apr 2020 17:17:20 -0400 Subject: [PATCH 16/36] Throwing this one into the queue --- .gitlab-ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index e9f28ef..7651304 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -17,6 +17,7 @@ build:ARM64: - mkdir -p ~/.docker/cli-plugins - mv buildx* ~/.docker/cli-plugins/docker-buildx - chmod a+x ~/.docker/cli-plugins/docker-buildx + - docker buildx ls - timestamp=$(date +%Y%m%d%H%M%S) - cd $CI_PROJECT_DIR/ - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY From 8b3b399f6d92f199fc45c1e9a65d0f0dd686b5ce Mon Sep 17 00:00:00 2001 From: Kelly Hair Date: Tue, 14 Apr 2020 17:19:18 -0400 Subject: [PATCH 17/36] Hmm Adding qemu --- .gitlab-ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 7651304..b807ea3 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -12,6 +12,7 @@ build:ARM64: script: # Current thinking is to add build the container & tag with both the date # in YYYY-mm-dd-h-m-s format as well as "latest": + - apt-get install qemu-user-static - docker run --rm --privileged multiarch/qemu-user-static --reset -p yes - wget https://github.com/docker/buildx/releases/download/v0.3.1/buildx-v0.3.1.linux-amd64 - mkdir -p ~/.docker/cli-plugins From b5eed2cdf7c1097189afc3b3121d7a472c58d7a7 Mon Sep 17 00:00:00 2001 From: Kelly Hair Date: Tue, 14 Apr 2020 17:23:02 -0400 Subject: [PATCH 18/36] More troublshooting May need to register a group runner --- .gitlab-ci.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index b807ea3..77948e5 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -12,6 +12,10 @@ build:ARM64: script: # Current thinking is to add build the container & tag with both the date # in YYYY-mm-dd-h-m-s format as well as "latest": + - uname -a + - cat /etc/issue + - yum + - apt - apt-get install qemu-user-static - docker run --rm --privileged multiarch/qemu-user-static --reset -p yes - wget https://github.com/docker/buildx/releases/download/v0.3.1/buildx-v0.3.1.linux-amd64 From 67ded393ca1b1e37478dc5967a6bc9ba4e545fdd Mon Sep 17 00:00:00 2001 From: Kelly Hair Date: Tue, 14 Apr 2020 17:28:43 -0400 Subject: [PATCH 19/36] Adding qemu to alpine Hope this is the right one!? --- .gitlab-ci.yml | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 77948e5..5a60c06 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -12,11 +12,7 @@ build:ARM64: script: # Current thinking is to add build the container & tag with both the date # in YYYY-mm-dd-h-m-s format as well as "latest": - - uname -a - - cat /etc/issue - - yum - - apt - - apt-get install qemu-user-static + - apk add qemu-system-arm - docker run --rm --privileged multiarch/qemu-user-static --reset -p yes - wget https://github.com/docker/buildx/releases/download/v0.3.1/buildx-v0.3.1.linux-amd64 - mkdir -p ~/.docker/cli-plugins From 0b099f35642926fda98b5c7ec4d3309ef2b811b8 Mon Sep 17 00:00:00 2001 From: Kelly Hair Date: Tue, 14 Apr 2020 17:36:39 -0400 Subject: [PATCH 20/36] changing qemu suspect it's nested as it's DIND. May need to sleep on it. --- .gitlab-ci.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 5a60c06..4fb5dd9 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -12,8 +12,9 @@ build:ARM64: script: # Current thinking is to add build the container & tag with both the date # in YYYY-mm-dd-h-m-s format as well as "latest": - - apk add qemu-system-arm - - docker run --rm --privileged multiarch/qemu-user-static --reset -p yes + - apk add qemu-aarch64_be + - ls -ltar /usr/bin/ + # - docker run --rm --privileged multiarch/qemu-user-static --reset -p yes - wget https://github.com/docker/buildx/releases/download/v0.3.1/buildx-v0.3.1.linux-amd64 - mkdir -p ~/.docker/cli-plugins - mv buildx* ~/.docker/cli-plugins/docker-buildx From f18bfaf31556c3936edc917e3e40fc8309a16b9b Mon Sep 17 00:00:00 2001 From: Kelly Hair Date: Tue, 14 Apr 2020 17:38:46 -0400 Subject: [PATCH 21/36] More troubleshooting --- .gitlab-ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 4fb5dd9..fc786c7 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -20,6 +20,7 @@ build:ARM64: - mv buildx* ~/.docker/cli-plugins/docker-buildx - chmod a+x ~/.docker/cli-plugins/docker-buildx - docker buildx ls + - docker buildx imagetools inspect alpine - timestamp=$(date +%Y%m%d%H%M%S) - cd $CI_PROJECT_DIR/ - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY From 342cd0dd01718691fb728ac29b30048e48708eec Mon Sep 17 00:00:00 2001 From: Kelly Hair Date: Tue, 14 Apr 2020 17:42:58 -0400 Subject: [PATCH 22/36] yet... more troubleshooting --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index fc786c7..8ca8d88 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -24,7 +24,7 @@ build:ARM64: - timestamp=$(date +%Y%m%d%H%M%S) - cd $CI_PROJECT_DIR/ - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY - - docker buildx build --platform "linux/arm64" --no-cache . -t minio-arm64 + - docker buildx build --platform=linux/arm64 --no-cache . -t minio-arm64 - docker tag minio-arm64 registry.gitlab.com/$CI_PROJECT_PATH/minio-arm64:latest - docker tag minio-arm64 registry.gitlab.com/$CI_PROJECT_PATH/minio-arm64:$timestamp - docker push registry.gitlab.com/$CI_PROJECT_PATH/minio-arm64:latest From 9367f8ebe0f76b13e444da04c57ff9369d3518d0 Mon Sep 17 00:00:00 2001 From: Kelly Hair Date: Tue, 14 Apr 2020 17:44:08 -0400 Subject: [PATCH 23/36] changing platform type --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 8ca8d88..ce2b8a6 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -24,7 +24,7 @@ build:ARM64: - timestamp=$(date +%Y%m%d%H%M%S) - cd $CI_PROJECT_DIR/ - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY - - docker buildx build --platform=linux/arm64 --no-cache . -t minio-arm64 + - docker buildx build --platform=linux/arm64/v8 --no-cache . -t minio-arm64 - docker tag minio-arm64 registry.gitlab.com/$CI_PROJECT_PATH/minio-arm64:latest - docker tag minio-arm64 registry.gitlab.com/$CI_PROJECT_PATH/minio-arm64:$timestamp - docker push registry.gitlab.com/$CI_PROJECT_PATH/minio-arm64:latest From e309b4be6eccf4f969cd7d192092c399f312d715 Mon Sep 17 00:00:00 2001 From: Kelly Hair Date: Tue, 14 Apr 2020 17:51:17 -0400 Subject: [PATCH 24/36] Adding more troubleshooting statements --- .gitlab-ci.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index ce2b8a6..46275ac 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -13,6 +13,10 @@ build:ARM64: # Current thinking is to add build the container & tag with both the date # in YYYY-mm-dd-h-m-s format as well as "latest": - apk add qemu-aarch64_be + - lsb_release -a + - ls /proc/sys/fs/binfmt_misc/ + - cat /proc/sys/fs/binfmt_misc/qemu-aarch64 + - docker run --rm --privileged multiarch/qemu-user-static --reset -p yes - ls -ltar /usr/bin/ # - docker run --rm --privileged multiarch/qemu-user-static --reset -p yes - wget https://github.com/docker/buildx/releases/download/v0.3.1/buildx-v0.3.1.linux-amd64 @@ -24,7 +28,7 @@ build:ARM64: - timestamp=$(date +%Y%m%d%H%M%S) - cd $CI_PROJECT_DIR/ - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY - - docker buildx build --platform=linux/arm64/v8 --no-cache . -t minio-arm64 + - docker buildx build --platform=linux/arm64 --no-cache . -t minio-arm64 - docker tag minio-arm64 registry.gitlab.com/$CI_PROJECT_PATH/minio-arm64:latest - docker tag minio-arm64 registry.gitlab.com/$CI_PROJECT_PATH/minio-arm64:$timestamp - docker push registry.gitlab.com/$CI_PROJECT_PATH/minio-arm64:latest From 28a00d5d2dc74e03709154e37715058ccdeb7346 Mon Sep 17 00:00:00 2001 From: Kelly Hair Date: Tue, 14 Apr 2020 17:53:02 -0400 Subject: [PATCH 25/36] ... --- .gitlab-ci.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 46275ac..78bd7ae 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -13,7 +13,6 @@ build:ARM64: # Current thinking is to add build the container & tag with both the date # in YYYY-mm-dd-h-m-s format as well as "latest": - apk add qemu-aarch64_be - - lsb_release -a - ls /proc/sys/fs/binfmt_misc/ - cat /proc/sys/fs/binfmt_misc/qemu-aarch64 - docker run --rm --privileged multiarch/qemu-user-static --reset -p yes From 586b0c0b94eb82a60be0dd298bbe7ecb257bd4eb Mon Sep 17 00:00:00 2001 From: Kelly Hair Date: Tue, 14 Apr 2020 17:56:23 -0400 Subject: [PATCH 26/36] Please work --- .gitlab-ci.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 78bd7ae..d9d8234 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -13,11 +13,10 @@ build:ARM64: # Current thinking is to add build the container & tag with both the date # in YYYY-mm-dd-h-m-s format as well as "latest": - apk add qemu-aarch64_be - - ls /proc/sys/fs/binfmt_misc/ - - cat /proc/sys/fs/binfmt_misc/qemu-aarch64 - docker run --rm --privileged multiarch/qemu-user-static --reset -p yes - ls -ltar /usr/bin/ - # - docker run --rm --privileged multiarch/qemu-user-static --reset -p yes + - ls /proc/sys/fs/binfmt_misc/ + - docker run --rm --privileged multiarch/qemu-user-static --reset -p yes - wget https://github.com/docker/buildx/releases/download/v0.3.1/buildx-v0.3.1.linux-amd64 - mkdir -p ~/.docker/cli-plugins - mv buildx* ~/.docker/cli-plugins/docker-buildx From 5a5532dd64de4b1223e8ac5858ccfe78a44bc944 Mon Sep 17 00:00:00 2001 From: Kelly Hair Date: Tue, 14 Apr 2020 18:02:11 -0400 Subject: [PATCH 27/36] troubleshooting --- .gitlab-ci.yml | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index d9d8234..13a5762 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -12,17 +12,15 @@ build:ARM64: script: # Current thinking is to add build the container & tag with both the date # in YYYY-mm-dd-h-m-s format as well as "latest": - - apk add qemu-aarch64_be - - docker run --rm --privileged multiarch/qemu-user-static --reset -p yes - - ls -ltar /usr/bin/ - - ls /proc/sys/fs/binfmt_misc/ + # - apk add qemu-aarch64_be - docker run --rm --privileged multiarch/qemu-user-static --reset -p yes + - ls /proc/sys/fs/binfmt_misc/qemu-aarch64 + - cat /proc/sys/fs/binfmt_misc/qemu-aarch64 - wget https://github.com/docker/buildx/releases/download/v0.3.1/buildx-v0.3.1.linux-amd64 - mkdir -p ~/.docker/cli-plugins - mv buildx* ~/.docker/cli-plugins/docker-buildx - chmod a+x ~/.docker/cli-plugins/docker-buildx - docker buildx ls - - docker buildx imagetools inspect alpine - timestamp=$(date +%Y%m%d%H%M%S) - cd $CI_PROJECT_DIR/ - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY From d7259bf2358a14f67e99db192957a5c89e52d04b Mon Sep 17 00:00:00 2001 From: Kelly Hair Date: Tue, 14 Apr 2020 18:05:36 -0400 Subject: [PATCH 28/36] May have had the wrong qemu --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 13a5762..1f84f61 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -12,7 +12,7 @@ build:ARM64: script: # Current thinking is to add build the container & tag with both the date # in YYYY-mm-dd-h-m-s format as well as "latest": - # - apk add qemu-aarch64_be + - apk add qemu-aarch64 - docker run --rm --privileged multiarch/qemu-user-static --reset -p yes - ls /proc/sys/fs/binfmt_misc/qemu-aarch64 - cat /proc/sys/fs/binfmt_misc/qemu-aarch64 From 5b91663f33b893a55810c8512a3152b8fffa88bb Mon Sep 17 00:00:00 2001 From: Kelly Hair Date: Tue, 14 Apr 2020 18:22:39 -0400 Subject: [PATCH 29/36] Found a way on stackoverflow --- .gitlab-ci.yml | 86 +++++++++++++++++++++++++++++++++++--------------- 1 file changed, 61 insertions(+), 25 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 1f84f61..203ad4b 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,31 +1,67 @@ -stages: - - docker builds +# Credit -> https://stackoverflow.com/questions/58600986/gitlab-ci-trying-to-use-docker-buildx-to-build-for-arm64 -build:ARM64: - stage: docker builds - image: docker:latest +stages: + - buildx + - deploy + +# build:ARM64: +# stage: buildx +# image: docker:latest +# variables: +# DOCKER_HOST: tcp://docker:2375/ +# DOCKER_DRIVER: overlay2 +# services: +# - docker:dind +# script: +# # Current thinking is to add build the container & tag with both the date +# # in YYYY-mm-dd-h-m-s format as well as "latest": +# - apk add qemu-aarch64 +# - docker run --rm --privileged multiarch/qemu-user-static --reset -p yes +# - ls /proc/sys/fs/binfmt_misc/qemu-aarch64 +# - cat /proc/sys/fs/binfmt_misc/qemu-aarch64 +# - wget https://github.com/docker/buildx/releases/download/v0.3.1/buildx-v0.3.1.linux-amd64 +# - mkdir -p ~/.docker/cli-plugins +# - mv buildx* ~/.docker/cli-plugins/docker-buildx +# - chmod a+x ~/.docker/cli-plugins/docker-buildx +# - docker buildx ls +# - timestamp=$(date +%Y%m%d%H%M%S) +# - cd $CI_PROJECT_DIR/ +# - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY +# - docker buildx build --platform=linux/arm64 --no-cache . -t minio-arm64 +# - docker tag minio-arm64 registry.gitlab.com/$CI_PROJECT_PATH/minio-arm64:latest +# - docker tag minio-arm64 registry.gitlab.com/$CI_PROJECT_PATH/minio-arm64:$timestamp +# - docker push registry.gitlab.com/$CI_PROJECT_PATH/minio-arm64:latest +# - docker push registry.gitlab.com/$CI_PROJECT_PATH/minio-arm64:$timestamp + + +buildx: + image: docker:19.03-git + stage: buildx variables: - DOCKER_HOST: tcp://docker:2375/ - DOCKER_DRIVER: overlay2 + GIT_STRATEGY: none + artifacts: + paths: + - buildx + expire_in: 1 hour services: - - docker:dind + - docker:19.03-dind script: -# Current thinking is to add build the container & tag with both the date -# in YYYY-mm-dd-h-m-s format as well as "latest": - - apk add qemu-aarch64 - - docker run --rm --privileged multiarch/qemu-user-static --reset -p yes - - ls /proc/sys/fs/binfmt_misc/qemu-aarch64 - - cat /proc/sys/fs/binfmt_misc/qemu-aarch64 - - wget https://github.com/docker/buildx/releases/download/v0.3.1/buildx-v0.3.1.linux-amd64 + - export DOCKER_BUILDKIT=1 + - git clone git://github.com/docker/buildx ./docker-buildx + - docker build --platform=local -o . ./docker-buildx + + +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 - - chmod a+x ~/.docker/cli-plugins/docker-buildx - - docker buildx ls - - timestamp=$(date +%Y%m%d%H%M%S) - - cd $CI_PROJECT_DIR/ + - mv buildx ~/.docker/cli-plugins/docker-buildx + - docker run --rm --privileged multiarch/qemu-user-static --reset -p yes + script: - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY - - docker buildx build --platform=linux/arm64 --no-cache . -t minio-arm64 - - docker tag minio-arm64 registry.gitlab.com/$CI_PROJECT_PATH/minio-arm64:latest - - docker tag minio-arm64 registry.gitlab.com/$CI_PROJECT_PATH/minio-arm64:$timestamp - - docker push registry.gitlab.com/$CI_PROJECT_PATH/minio-arm64:latest - - docker push registry.gitlab.com/$CI_PROJECT_PATH/minio-arm64:$timestamp \ No newline at end of file + - docker buildx create --use --name mybuilder + - docker buildx build --platform linux/amd64,linux/arm64,linux/arm/v7 --push -t $CI_REGISTRY_IMAGE . \ No newline at end of file From 5a5355ce78dc9ed1911288ecf17d821c17cd8978 Mon Sep 17 00:00:00 2001 From: Kelly Hair Date: Tue, 14 Apr 2020 18:56:20 -0400 Subject: [PATCH 30/36] Two changes Only build for ARM64 Tag & push --- .gitlab-ci.yml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 203ad4b..09ff595 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -64,4 +64,9 @@ deploy: 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 $CI_REGISTRY_IMAGE . \ No newline at end of file + # - docker buildx build --platform linux/arm64 --push -t $CI_REGISTRY_IMAGE . + - docker buildx build --platform linux/arm64 -t minio-arm64 . + - docker tag minio-arm64 registry.gitlab.com/$CI_PROJECT_PATH/minio-arm64:latest + - docker tag minio-arm64 registry.gitlab.com/$CI_PROJECT_PATH/minio-arm64:$timestamp + - docker push registry.gitlab.com/$CI_PROJECT_PATH/minio-arm64:latest + - docker push registry.gitlab.com/$CI_PROJECT_PATH/minio-arm64:$timestamp \ No newline at end of file From 14df2a1029bc3ff69d2d7d9692470795ef7d468e Mon Sep 17 00:00:00 2001 From: Kelly Hair Date: Tue, 14 Apr 2020 19:19:15 -0400 Subject: [PATCH 31/36] Build worked Tagging is not --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 09ff595..b54f7b2 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -65,7 +65,7 @@ deploy: - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY - docker buildx create --use --name mybuilder # - docker buildx build --platform linux/arm64 --push -t $CI_REGISTRY_IMAGE . - - docker buildx build --platform linux/arm64 -t minio-arm64 . + - docker buildx build --platform linux/arm64 . -t minio-arm64 - docker tag minio-arm64 registry.gitlab.com/$CI_PROJECT_PATH/minio-arm64:latest - docker tag minio-arm64 registry.gitlab.com/$CI_PROJECT_PATH/minio-arm64:$timestamp - docker push registry.gitlab.com/$CI_PROJECT_PATH/minio-arm64:latest From 53f02d9bf152c4531b2605bec2f0c535168fb310 Mon Sep 17 00:00:00 2001 From: Kelly Hair Date: Tue, 14 Apr 2020 19:42:43 -0400 Subject: [PATCH 32/36] one last for the night watch it work. That said, it's a single tag --- .gitlab-ci.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index b54f7b2..c651bdc 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -64,9 +64,9 @@ deploy: script: - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY - docker buildx create --use --name mybuilder - # - docker buildx build --platform linux/arm64 --push -t $CI_REGISTRY_IMAGE . - - docker buildx build --platform linux/arm64 . -t minio-arm64 - - docker tag minio-arm64 registry.gitlab.com/$CI_PROJECT_PATH/minio-arm64:latest - - docker tag minio-arm64 registry.gitlab.com/$CI_PROJECT_PATH/minio-arm64:$timestamp - - docker push registry.gitlab.com/$CI_PROJECT_PATH/minio-arm64:latest - - docker push registry.gitlab.com/$CI_PROJECT_PATH/minio-arm64:$timestamp \ No newline at end of file + - docker buildx build --platform linux/arm64 --push -t $CI_REGISTRY_IMAGE . + # - docker buildx build --platform linux/arm64 . -t minio-arm64 + # - docker tag minio-arm64 registry.gitlab.com/$CI_PROJECT_PATH/minio-arm64:latest + # - docker tag minio-arm64 registry.gitlab.com/$CI_PROJECT_PATH/minio-arm64:$timestamp + # - docker push registry.gitlab.com/$CI_PROJECT_PATH/minio-arm64:latest + # - docker push registry.gitlab.com/$CI_PROJECT_PATH/minio-arm64:$timestamp \ No newline at end of file From a5452eaf288a46ed9274760ac040818f1dcf6da0 Mon Sep 17 00:00:00 2001 From: Kelly Hair Date: Wed, 15 Apr 2020 10:00:18 -0400 Subject: [PATCH 33/36] Removing timely build want to see what is added to container repo --- .gitlab-ci.yml | 29 ++++++++++++++++++++++------- Dockerfile | 14 +++++++------- 2 files changed, 29 insertions(+), 14 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index c651bdc..94f3cf0 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -51,6 +51,26 @@ buildx: - docker build --platform=local -o . ./docker-buildx +# 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 $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY +# - docker buildx create --use --name mybuilder +# - docker buildx build --platform linux/arm64 --push -t $CI_REGISTRY_IMAGE . + # - docker buildx build --platform linux/arm64 . -t minio-arm64 + # - docker tag minio-arm64 registry.gitlab.com/$CI_PROJECT_PATH/minio-arm64:latest + # - docker tag minio-arm64 registry.gitlab.com/$CI_PROJECT_PATH/minio-arm64:$timestamp + # - docker push registry.gitlab.com/$CI_PROJECT_PATH/minio-arm64:latest + # - docker push registry.gitlab.com/$CI_PROJECT_PATH/minio-arm64:$timestamp + deploy: image: docker:19.03 stage: deploy @@ -62,11 +82,6 @@ deploy: - mv buildx ~/.docker/cli-plugins/docker-buildx - docker run --rm --privileged multiarch/qemu-user-static --reset -p yes script: - - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY + - docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY - docker buildx create --use --name mybuilder - - docker buildx build --platform linux/arm64 --push -t $CI_REGISTRY_IMAGE . - # - docker buildx build --platform linux/arm64 . -t minio-arm64 - # - docker tag minio-arm64 registry.gitlab.com/$CI_PROJECT_PATH/minio-arm64:latest - # - docker tag minio-arm64 registry.gitlab.com/$CI_PROJECT_PATH/minio-arm64:$timestamp - # - docker push registry.gitlab.com/$CI_PROJECT_PATH/minio-arm64:latest - # - docker push registry.gitlab.com/$CI_PROJECT_PATH/minio-arm64:$timestamp \ No newline at end of file + - docker buildx build --platform linux/amd64,linux/arm64,linux/arm/v7 --push -t $CI_REGISTRY_IMAGE . \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index 417d312..78a8b24 100644 --- a/Dockerfile +++ b/Dockerfile @@ -9,10 +9,10 @@ ENV GOPATH /go ENV CGO_ENABLED 0 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)" +# 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)" FROM alpine:3.10 @@ -28,9 +28,9 @@ 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/ -RUN \ - apk add --no-cache ca-certificates 'curl>7.61.0' 'su-exec>=0.2' && \ - echo 'hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4' >> /etc/nsswitch.conf +# RUN \ +# apk add --no-cache ca-certificates 'curl>7.61.0' 'su-exec>=0.2' && \ +# echo 'hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4' >> /etc/nsswitch.conf ENTRYPOINT ["/usr/bin/docker-entrypoint.sh"] From 3ff6406543b38fde4b2e2749f9faf2f8dda7c798 Mon Sep 17 00:00:00 2001 From: Kelly Hair Date: Wed, 15 Apr 2020 10:42:25 -0400 Subject: [PATCH 34/36] Still too much in Dockerfile Removed other bits to nudge the build along --- Dockerfile | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/Dockerfile b/Dockerfile index 78a8b24..5e5922a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -24,16 +24,16 @@ 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=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/ # RUN \ # apk add --no-cache ca-certificates 'curl>7.61.0' 'su-exec>=0.2' && \ # echo 'hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4' >> /etc/nsswitch.conf -ENTRYPOINT ["/usr/bin/docker-entrypoint.sh"] +# ENTRYPOINT ["/usr/bin/docker-entrypoint.sh"] -VOLUME ["/data"] +# VOLUME ["/data"] -CMD ["minio"] \ No newline at end of file +# CMD ["minio"] \ No newline at end of file From 6f3b66617f27c534c1d83ed356bc2abacb60bd1e Mon Sep 17 00:00:00 2001 From: Kelly Hair Date: Wed, 15 Apr 2020 10:52:12 -0400 Subject: [PATCH 35/36] Uncommenting lines in Dockerfile Build away --- Dockerfile | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/Dockerfile b/Dockerfile index 5e5922a..417d312 100644 --- a/Dockerfile +++ b/Dockerfile @@ -9,10 +9,10 @@ ENV GOPATH /go ENV CGO_ENABLED 0 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)" +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)" FROM alpine:3.10 @@ -24,16 +24,16 @@ 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=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/ -# RUN \ -# apk add --no-cache ca-certificates 'curl>7.61.0' 'su-exec>=0.2' && \ -# echo 'hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4' >> /etc/nsswitch.conf +RUN \ + apk add --no-cache ca-certificates 'curl>7.61.0' 'su-exec>=0.2' && \ + echo 'hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4' >> /etc/nsswitch.conf -# ENTRYPOINT ["/usr/bin/docker-entrypoint.sh"] +ENTRYPOINT ["/usr/bin/docker-entrypoint.sh"] -# VOLUME ["/data"] +VOLUME ["/data"] -# CMD ["minio"] \ No newline at end of file +CMD ["minio"] \ No newline at end of file From 2b9d790688deb15fed1481fb3738f5e168eff4c3 Mon Sep 17 00:00:00 2001 From: Kelly Hair Date: Wed, 15 Apr 2020 11:16:19 -0400 Subject: [PATCH 36/36] Adding weekly build Also, cleaned up YAML file --- .gitlab-ci.yml | 104 ++++++++++++++++++++++++------------------------- 1 file changed, 52 insertions(+), 52 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 94f3cf0..94b3e6f 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -3,36 +3,10 @@ stages: - buildx - deploy + - Weekly buildx + - Weekly deploy -# build:ARM64: -# stage: buildx -# image: docker:latest -# variables: -# DOCKER_HOST: tcp://docker:2375/ -# DOCKER_DRIVER: overlay2 -# services: -# - docker:dind -# script: -# # Current thinking is to add build the container & tag with both the date -# # in YYYY-mm-dd-h-m-s format as well as "latest": -# - apk add qemu-aarch64 -# - docker run --rm --privileged multiarch/qemu-user-static --reset -p yes -# - ls /proc/sys/fs/binfmt_misc/qemu-aarch64 -# - cat /proc/sys/fs/binfmt_misc/qemu-aarch64 -# - wget https://github.com/docker/buildx/releases/download/v0.3.1/buildx-v0.3.1.linux-amd64 -# - mkdir -p ~/.docker/cli-plugins -# - mv buildx* ~/.docker/cli-plugins/docker-buildx -# - chmod a+x ~/.docker/cli-plugins/docker-buildx -# - docker buildx ls -# - timestamp=$(date +%Y%m%d%H%M%S) -# - cd $CI_PROJECT_DIR/ -# - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY -# - docker buildx build --platform=linux/arm64 --no-cache . -t minio-arm64 -# - docker tag minio-arm64 registry.gitlab.com/$CI_PROJECT_PATH/minio-arm64:latest -# - docker tag minio-arm64 registry.gitlab.com/$CI_PROJECT_PATH/minio-arm64:$timestamp -# - docker push registry.gitlab.com/$CI_PROJECT_PATH/minio-arm64:latest -# - docker push registry.gitlab.com/$CI_PROJECT_PATH/minio-arm64:$timestamp - +# ----- Ad hoc Builds ----- buildx: image: docker:19.03-git @@ -42,34 +16,17 @@ buildx: artifacts: paths: - buildx - expire_in: 1 hour + 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 - - -# 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 $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY -# - docker buildx create --use --name mybuilder -# - docker buildx build --platform linux/arm64 --push -t $CI_REGISTRY_IMAGE . - # - docker buildx build --platform linux/arm64 . -t minio-arm64 - # - docker tag minio-arm64 registry.gitlab.com/$CI_PROJECT_PATH/minio-arm64:latest - # - docker tag minio-arm64 registry.gitlab.com/$CI_PROJECT_PATH/minio-arm64:$timestamp - # - docker push registry.gitlab.com/$CI_PROJECT_PATH/minio-arm64:latest - # - docker push registry.gitlab.com/$CI_PROJECT_PATH/minio-arm64:$timestamp + only: + changes: + - Dockerfile + - .gitlab-ci.yml deploy: image: docker:19.03 @@ -84,4 +41,47 @@ 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 . \ No newline at end of file + - docker buildx build --platform linux/amd64,linux/arm64,linux/arm/v7 --push -t $CI_REGISTRY_IMAGE . + only: + changes: + - Dockerfile + - .gitlab-ci.yml + +# ----- 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 + - master + +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 + - master \ No newline at end of file