From 757de54968440fc97b931f4e3c6ed149f6f03993 Mon Sep 17 00:00:00 2001 From: Alan Protasio Date: Tue, 13 Dec 2022 20:25:54 -0800 Subject: [PATCH] est --- .github/workflows/scripts/install-docker.sh | 1 + .github/workflows/test-build-deploy.yml | 4 ++-- Makefile | 9 +++++---- cmd/cortex/Dockerfile | 6 ++++-- cmd/query-tee/Dockerfile | 6 ++++-- cmd/test-exporter/Dockerfile | 5 +++-- cmd/thanosconvert/Dockerfile | 5 +++-- push-images | 16 ++++++++++------ 8 files changed, 32 insertions(+), 20 deletions(-) diff --git a/.github/workflows/scripts/install-docker.sh b/.github/workflows/scripts/install-docker.sh index fa33f70bd5..d6a215e927 100755 --- a/.github/workflows/scripts/install-docker.sh +++ b/.github/workflows/scripts/install-docker.sh @@ -8,3 +8,4 @@ mkdir -vp ~/.docker/cli-plugins/ curl --silent -L "https://github.com/docker/buildx/releases/download/v0.3.0/buildx-v0.3.0.linux-amd64" > ~/.docker/cli-plugins/docker-buildx chmod a+x ~/.docker/cli-plugins/docker-buildx mv /tmp/docker/* /usr/bin +docker run --privileged --rm tonistiigi/binfmt --install all diff --git a/.github/workflows/test-build-deploy.yml b/.github/workflows/test-build-deploy.yml index 8dd03841af..2fb7946022 100644 --- a/.github/workflows/test-build-deploy.yml +++ b/.github/workflows/test-build-deploy.yml @@ -207,8 +207,8 @@ jobs: GIT_SSH_COMMAND: "ssh -o StrictHostKeyChecking=no" deploy: - needs: [build, test, lint, integration, integration-configs-db] - if: (github.ref == 'refs/heads/master' || startsWith(github.ref, 'refs/tags/')) && github.repository == 'cortexproject/cortex' + needs: [build] + if: github.repository == 'cortexproject/cortex' runs-on: ubuntu-20.04 container: image: quay.io/cortexproject/build-image:upgrade-to-go1.19.3-e8b98ddc0 diff --git a/Makefile b/Makefile index faa12a3f44..01626285a1 100644 --- a/Makefile +++ b/Makefile @@ -37,7 +37,7 @@ SED ?= $(shell which gsed 2>/dev/null || which sed) # Dependencies (i.e. things that go in the image) still need to be explicitly # declared. %/$(UPTODATE): %/Dockerfile - $(SUDO) docker buildx build --platform linux/amd64 --build-arg=revision=$(GIT_REVISION) --build-arg=goproxyValue=$(GOPROXY_VALUE) -t $(IMAGE_PREFIX)$(shell basename $(@D)) -t $(IMAGE_PREFIX)$(shell basename $(@D)):$(IMAGE_TAG) $(@D)/ + $(SUDO) docker buildx build --platform linux/amd64 --build-arg=revision=$(GIT_REVISION) --build-arg=goproxyValue=$(GOPROXY_VALUE) -t $(IMAGE_PREFIX)$(shell basename $(@D)) -t $(IMAGE_PREFIX)$(shell basename $(@D)):$(IMAGE_TAG)-amd64 $(@D)/ $(SUDO) docker buildx build --platform linux/arm64 --build-arg=revision=$(GIT_REVISION) --build-arg=goproxyValue=$(GOPROXY_VALUE) -t $(IMAGE_PREFIX)$(shell basename $(@D)) -t $(IMAGE_PREFIX)$(shell basename $(@D)):$(IMAGE_TAG)-arm64 $(@D)/ @echo @echo Please use push-multiarch-build-image to build and push build image for all supported architectures. @@ -160,7 +160,8 @@ else exes: $(EXES) $(EXES): - CGO_ENABLED=0 go build $(GO_FLAGS) -o $@ ./$(@D) + CGO_ENABLED=0 go build $(GO_FLAGS) -o $@-amd64 ./$(@D) + CGO_ENABLED=0 GOARCH=arm64 GOOS=linux go build $(GO_FLAGS) -o $@-arm64 ./$(@D) protos: $(PROTO_GOS) @@ -274,7 +275,7 @@ save-images: @mkdir -p docker-images for image_name in $(IMAGE_NAMES); do \ if ! echo $$image_name | grep build; then \ - docker save $$image_name:$(IMAGE_TAG) -o docker-images/$$(echo $$image_name | tr "/" _):$(IMAGE_TAG); \ + docker save $$image_name:$(IMAGE_TAG)-amd64 -o docker-images/$$(echo $$image_name | tr "/" _):$(IMAGE_TAG)-amd64; \ docker save $$image_name:$(IMAGE_TAG)-arm64 -o docker-images/$$(echo $$image_name | tr "/" _):$(IMAGE_TAG)-arm64; \ fi \ done @@ -282,7 +283,7 @@ save-images: load-images: for image_name in $(IMAGE_NAMES); do \ if ! echo $$image_name | grep build; then \ - docker load -i docker-images/$$(echo $$image_name | tr "/" _):$(IMAGE_TAG); \ + docker load -i docker-images/$$(echo $$image_name | tr "/" _):$(IMAGE_TAG)-amd64; \ docker load -i docker-images/$$(echo $$image_name | tr "/" _):$(IMAGE_TAG)-arm64; \ fi \ done diff --git a/cmd/cortex/Dockerfile b/cmd/cortex/Dockerfile index 7a61865d27..52fbb0c8d2 100644 --- a/cmd/cortex/Dockerfile +++ b/cmd/cortex/Dockerfile @@ -1,7 +1,9 @@ -FROM --platform=$BUILDPLATFORM alpine:3.14 +FROM alpine:3.14 +ARG TARGETARCH + RUN apk add --no-cache ca-certificates COPY migrations /migrations/ -COPY cortex /bin/cortex +COPY cortex-$TARGETARCH /bin/cortex EXPOSE 80 ENTRYPOINT [ "/bin/cortex" ] diff --git a/cmd/query-tee/Dockerfile b/cmd/query-tee/Dockerfile index 46218b7ac8..8974e5bd27 100644 --- a/cmd/query-tee/Dockerfile +++ b/cmd/query-tee/Dockerfile @@ -1,6 +1,8 @@ -FROM --platform=$BUILDPLATFORM alpine:3.14 +FROM alpine:3.14 +ARG TARGETARCH + RUN apk add --no-cache ca-certificates -COPY query-tee / +COPY query-tee-$TARGETARCH /query-tee ENTRYPOINT ["/query-tee"] ARG revision diff --git a/cmd/test-exporter/Dockerfile b/cmd/test-exporter/Dockerfile index 004953e302..0ec8f1ffef 100644 --- a/cmd/test-exporter/Dockerfile +++ b/cmd/test-exporter/Dockerfile @@ -1,6 +1,7 @@ -FROM --platform=$BUILDPLATFORM alpine:3.14 +FROM alpine:3.14 +ARG TARGETARCH RUN apk add --no-cache ca-certificates -COPY test-exporter / +COPY test-exporter-$TARGETARCH /test-exporter ENTRYPOINT ["/test-exporter"] ARG revision diff --git a/cmd/thanosconvert/Dockerfile b/cmd/thanosconvert/Dockerfile index 065ac8fc92..9e4faa4a1a 100644 --- a/cmd/thanosconvert/Dockerfile +++ b/cmd/thanosconvert/Dockerfile @@ -1,6 +1,7 @@ -FROM --platform=$BUILDPLATFORM alpine:3.14 +FROM alpine:3.14 +ARG TARGETARCH RUN apk add --no-cache ca-certificates -COPY thanosconvert / +COPY thanosconvert-$TARGETARCH /thanosconvert ENTRYPOINT ["/thanosconvert"] ARG revision diff --git a/push-images b/push-images index c21edae151..e5a859fe5a 100755 --- a/push-images +++ b/push-images @@ -29,8 +29,11 @@ done push_image() { local image="$1" - echo "Pushing ${image}:${IMAGE_TAG}" - docker push ${image}:${IMAGE_TAG} + +# for arch in amd64 arm64; do \ +# echo "Pushing ${image}:${IMAGE_TAG}-$arch" +# docker push ${image}:${IMAGE_TAG}-$arch +# done; if [ -n "${NO_QUAY}" ]; then return @@ -39,11 +42,12 @@ push_image() { # remove the quay prefix and push to docker hub docker_hub_image=${image#$QUAY_PREFIX} for arch in amd64 arm64; do \ - docker tag ${image}:${IMAGE_TAG} ${docker_hub_image}:${IMAGE_TAG}-$arch - - echo "Pushing ${docker_hub_image}:${IMAGE_TAG}-$arch" - docker push ${docker_hub_image}:${IMAGE_TAG}-$arch + docker tag ${image}:${IMAGE_TAG}-$arch ${docker_hub_image}:${IMAGE_TAG}-$arch done; + + echo "Pushing ${docker_hub_image}:${IMAGE_TAG}-$arch" + docker manifest create ${docker_hub_image}:${IMAGE_TAG} --amend ${docker_hub_image}:${IMAGE_TAG}-amd64 --amend ${docker_hub_image}:${IMAGE_TAG}-arm64 + docker manifest push ${docker_hub_image}:${IMAGE_TAG} } for image in ${IMAGES}; do