Skip to content

Commit 18f7abd

Browse files
ranimandepudiOrlinVasilevVad1moCopilotbupd
authored
Full Multi-Architecture Enablement for Harbor (amd64 + arm64) (#22311)
Co-authored-by: Orlix <7236111+OrlinVasilev@users.noreply.github.com> Co-authored-by: Vadim Bauer <vb@container-registry.com> Co-authored-by: Vadim Bauer <Bauer.vadim@gmail.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: bupd <bupdprasanth@gmail.com>
1 parent 2cc8623 commit 18f7abd

7 files changed

Lines changed: 207 additions & 68 deletions

File tree

.github/workflows/build-package.yml

Lines changed: 77 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,14 @@ on:
99
- release-*
1010
jobs:
1111
BUILD_PACKAGE:
12+
strategy:
13+
fail-fast: false
14+
matrix:
15+
arch: [amd64, arm64]
1216
env:
1317
BUILD_PACKAGE: true
14-
runs-on: ubuntu-latest
18+
ARCH: ${{ matrix.arch }}
19+
runs-on: ${{ matrix.arch == 'arm64' && 'ubuntu-24.04-arm' || 'ubuntu-latest' }}
1520
steps:
1621
- name: Configure AWS credentials
1722
uses: aws-actions/configure-aws-credentials@v5.1.1
@@ -86,21 +91,80 @@ jobs:
8691
build_base_params=" BUILD_BASE=true PULL_BASE_FROM_DOCKERHUB=true PUSHBASEIMAGE=true REGISTRYUSER=\"${{ secrets.DOCKER_HUB_USERNAME }}\" REGISTRYPASSWORD=\"${{ secrets.DOCKER_HUB_PASSWORD }}\""
8792
fi
8893
89-
sudo make package_offline GOBUILDTAGS="include_oss include_gcs" BASEIMAGETAG=${Harbor_Build_Base_Tag} VERSIONTAG=${Harbor_Assets_Version} PKGVERSIONTAG=${Harbor_Package_Version} TRIVYFLAG=true EXPORTERFLAG=true HTTPPROXY= ${build_base_params}
90-
sudo make package_online GOBUILDTAGS="include_oss include_gcs" BASEIMAGETAG=${Harbor_Build_Base_Tag} VERSIONTAG=${Harbor_Assets_Version} PKGVERSIONTAG=${Harbor_Package_Version} TRIVYFLAG=true EXPORTERFLAG=true HTTPPROXY= ${build_base_params}
94+
sudo make package_offline ARCH=${ARCH} GOBUILDTAGS="include_oss include_gcs" BASEIMAGETAG=${Harbor_Build_Base_Tag} VERSIONTAG=${Harbor_Assets_Version} PKGVERSIONTAG=${Harbor_Package_Version} TRIVYFLAG=true EXPORTERFLAG=true HTTPPROXY= ${build_base_params}
95+
sudo make package_online ARCH=${ARCH} GOBUILDTAGS="include_oss include_gcs" BASEIMAGETAG=${Harbor_Build_Base_Tag} VERSIONTAG=${Harbor_Assets_Version} PKGVERSIONTAG=${Harbor_Package_Version} TRIVYFLAG=true EXPORTERFLAG=true HTTPPROXY= ${build_base_params}
9196
harbor_offline_build_bundle=$(basename harbor-offline-installer-*.tgz)
9297
harbor_online_build_bundle=$(basename harbor-online-installer-*.tgz)
93-
echo "Package name is: $harbor_offline_build_bundle"
94-
echo "Package name is: $harbor_online_build_bundle"
98+
mv "${harbor_offline_build_bundle}" "harbor-offline-installer-${Harbor_Package_Version}-${ARCH}.tgz"
99+
mv "${harbor_online_build_bundle}" "harbor-online-installer-${Harbor_Package_Version}-${ARCH}.tgz"
100+
harbor_offline_build_bundle="harbor-offline-installer-${Harbor_Package_Version}-${ARCH}.tgz"
101+
harbor_online_build_bundle="harbor-online-installer-${Harbor_Package_Version}-${ARCH}.tgz"
95102
96103
source tests/ci/build_util.sh
97-
cp ${harbor_offline_build_bundle} harbor-offline-installer-latest.tgz
98-
cp ${harbor_online_build_bundle} harbor-online-installer-latest.tgz
99-
uploader ${harbor_offline_build_bundle} $harbor_target_bucket
100-
uploader ${harbor_online_build_bundle} $harbor_target_bucket
101-
uploader harbor-offline-installer-latest.tgz $harbor_target_bucket
102-
uploader harbor-online-installer-latest.tgz $harbor_target_bucket
103-
echo "BUILD_BUNDLE=$harbor_offline_build_bundle" >> $GITHUB_ENV
104+
cp "${harbor_offline_build_bundle}" "harbor-offline-installer-latest-${ARCH}.tgz"
105+
cp "${harbor_online_build_bundle}" "harbor-online-installer-latest-${ARCH}.tgz"
106+
uploader "${harbor_offline_build_bundle}" $harbor_target_bucket
107+
uploader "${harbor_online_build_bundle}" $harbor_target_bucket
108+
uploader "harbor-offline-installer-latest-${ARCH}.tgz" $harbor_target_bucket
109+
uploader "harbor-online-installer-latest-${ARCH}.tgz" $harbor_target_bucket
110+
# Backwards compatibility: keep the unsuffixed legacy "latest" name
111+
# pointing to amd64 (what it historically was) so existing downstream
112+
# consumers that expect harbor-*-installer-latest.tgz don't break.
113+
if [ "${ARCH}" = "amd64" ]; then
114+
cp "${harbor_offline_build_bundle}" "harbor-offline-installer-latest.tgz"
115+
cp "${harbor_online_build_bundle}" "harbor-online-installer-latest.tgz"
116+
uploader "harbor-offline-installer-latest.tgz" $harbor_target_bucket
117+
uploader "harbor-online-installer-latest.tgz" $harbor_target_bucket
118+
fi
119+
echo "BUILD_BUNDLE=${harbor_offline_build_bundle}" >> $GITHUB_ENV
104120
echo "harbor_target_bucket=$harbor_target_bucket" >> $GITHUB_ENV
105121
106-
publishImage $target_branch $Harbor_Assets_Version "${{ secrets.DOCKER_HUB_USERNAME }}" "${{ secrets.DOCKER_HUB_PASSWORD }}"
122+
publishImage $target_branch $Harbor_Assets_Version "${{ secrets.DOCKER_HUB_USERNAME }}" "${{ secrets.DOCKER_HUB_PASSWORD }}" ${ARCH}
123+
- name: Save repo list
124+
run: |
125+
docker images --format '{{.Repository}}' | grep '^goharbor/' | grep -v '\-base' | sort -u > "$GITHUB_WORKSPACE/_repos_${ARCH}.txt"
126+
- name: Upload repo list
127+
uses: actions/upload-artifact@v4
128+
with:
129+
name: repos-${{ matrix.arch }}
130+
path: ${{ github.workspace }}/_repos_${{ matrix.arch }}.txt
131+
132+
CREATE_MANIFEST:
133+
needs: [BUILD_PACKAGE]
134+
runs-on: ubuntu-latest
135+
permissions:
136+
contents: read
137+
steps:
138+
- uses: actions/checkout@v6
139+
- uses: actions/download-artifact@v4
140+
with:
141+
pattern: repos-*
142+
merge-multiple: true
143+
- name: Set up Docker Buildx
144+
uses: docker/setup-buildx-action@v3
145+
- name: Determine image tag
146+
id: tag
147+
run: |
148+
target_branch="$(echo ${GITHUB_REF#refs/heads/})"
149+
version=$(cat ./VERSION)
150+
if [[ $target_branch == "main" ]]; then
151+
echo "image_tag=dev" >> $GITHUB_OUTPUT
152+
elif [[ $target_branch == "release-"* ]]; then
153+
echo "image_tag=${version}-dev" >> $GITHUB_OUTPUT
154+
else
155+
echo "image_tag=${version}" >> $GITHUB_OUTPUT
156+
fi
157+
- name: Login to Docker Hub
158+
run: echo "${{ secrets.DOCKER_HUB_PASSWORD }}" | docker login -u "${{ secrets.DOCKER_HUB_USERNAME }}" --password-stdin
159+
- name: Create multi-arch manifests
160+
run: |
161+
set -euo pipefail
162+
image_tag="${{ steps.tag.outputs.image_tag }}"
163+
cat _repos_*.txt | sort -u | while IFS= read -r repo; do
164+
[ -z "$repo" ] && continue
165+
echo "Creating manifest ${repo}:${image_tag}"
166+
docker buildx imagetools create -t "${repo}:${image_tag}" \
167+
"${repo}:${image_tag}-amd64" \
168+
"${repo}:${image_tag}-arm64"
169+
done
170+
docker logout

.github/workflows/publish_release.yml

Lines changed: 78 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -39,51 +39,87 @@ jobs:
3939
echo "buildNo:${{ env.BUILD_NO }}"
4040
echo "preTag:${{ env.PRE_TAG }}"
4141
42-
src_offline_package=harbor-offline-installer-${{ env.BASE_TAG }}-${{ env.BUILD_NO }}.tgz
43-
src_online_package=harbor-online-installer-${{ env.BASE_TAG }}-${{ env.BUILD_NO }}.tgz
44-
dst_offline_package=harbor-offline-installer-${{ env.CUR_TAG }}.tgz
45-
dst_online_package=harbor-online-installer-${{ env.CUR_TAG }}.tgz
42+
base=${{ env.BASE_TAG }}
43+
cur=${{ env.CUR_TAG }}
44+
bucket=${{ secrets.HARBOR_RELEASE_BUILD }}
45+
branch=${{ env.BRANCH }}
46+
assets_path=$(pwd)/assets
47+
mkdir -p "$assets_path"
4648
47-
aws s3 cp s3://${{ secrets.HARBOR_RELEASE_BUILD }}/${{ env.BRANCH }}/${src_offline_package} s3://${{ secrets.HARBOR_RELEASE_BUILD }}/${{ env.BRANCH }}/${dst_offline_package}
48-
aws s3 cp s3://${{ secrets.HARBOR_RELEASE_BUILD }}/${{ env.BRANCH }}/${src_online_package} s3://${{ secrets.HARBOR_RELEASE_BUILD }}/${{ env.BRANCH }}/${dst_online_package}
49+
for arch in amd64 arm64; do
50+
src_offline=harbor-offline-installer-${base}-${{ env.BUILD_NO }}-${arch}.tgz
51+
dst_offline=harbor-offline-installer-${cur}-${arch}.tgz
52+
dst_online=
53+
aws s3 cp s3://${bucket}/${branch}/${src_offline} s3://${bucket}/${branch}/${dst_offline}
4954
50-
assets_path=$(pwd)/assets
51-
source tools/release/release_utils.sh && getAssets ${{ secrets.HARBOR_RELEASE_BUILD }} ${{ env.BRANCH }} $dst_offline_package $dst_online_package ${{ env.PRERELEASE }} $assets_path
52-
echo "OFFLINE_PACKAGE_PATH=$assets_path/$dst_offline_package" >> $GITHUB_ENV
53-
echo "ONLINE_PACKAGE_PATH=$assets_path/$dst_online_package" >> $GITHUB_ENV
55+
if [ "${{ env.PRERELEASE }}" = "false" ]; then
56+
src_online=harbor-online-installer-${base}-${{ env.BUILD_NO }}-${arch}.tgz
57+
dst_online=harbor-online-installer-${cur}-${arch}.tgz
58+
aws s3 cp s3://${bucket}/${branch}/${src_online} s3://${bucket}/${branch}/${dst_online}
59+
fi
60+
source tools/release/release_utils.sh && getAssets ${bucket} ${branch} ${dst_offline} ${dst_online} ${{ env.PRERELEASE }} ${assets_path}
61+
done
62+
63+
echo "ASSETS_DIR=$assets_path" >> $GITHUB_ENV
5464
echo "MD5SUM_PATH=$assets_path/md5sum" >> $GITHUB_ENV
5565
- name: Install Cosign
5666
uses: sigstore/cosign-installer@v4.0.0
5767
- name: Sign Release Artifacts
5868
run: |
59-
cosign sign-blob --yes \
60-
--bundle=./assets/harbor-offline-installer-${{ env.CUR_TAG }}.tgz.sigstore.json \
61-
${{ env.OFFLINE_PACKAGE_PATH }}
62-
63-
if [ "${{ env.PRERELEASE }}" = "false" ]; then
69+
cur=${{ env.CUR_TAG }}
70+
for arch in amd64 arm64; do
6471
cosign sign-blob --yes \
65-
--bundle=./assets/harbor-online-installer-${{ env.CUR_TAG }}.tgz.sigstore.json \
66-
${{ env.ONLINE_PACKAGE_PATH }}
67-
fi
72+
--bundle=${{ env.ASSETS_DIR }}/harbor-offline-installer-${cur}-${arch}.tgz.sigstore.json \
73+
${{ env.ASSETS_DIR }}/harbor-offline-installer-${cur}-${arch}.tgz
6874
69-
echo "OFFLINE_SIGSTORE_PATH=./assets/harbor-offline-installer-${{ env.CUR_TAG }}.tgz.sigstore.json" >> $GITHUB_ENV
70-
71-
if [ "${{ env.PRERELEASE }}" = "false" ]; then
72-
echo "ONLINE_SIGSTORE_PATH=./assets/harbor-online-installer-${{ env.CUR_TAG }}.tgz.sigstore.json" >> $GITHUB_ENV
73-
fi
75+
if [ "${{ env.PRERELEASE }}" = "false" ]; then
76+
cosign sign-blob --yes \
77+
--bundle=${{ env.ASSETS_DIR }}/harbor-online-installer-${cur}-${arch}.tgz.sigstore.json \
78+
${{ env.ASSETS_DIR }}/harbor-online-installer-${cur}-${arch}.tgz
79+
fi
80+
done
7481
- name: Setup Docker
7582
uses: docker-practice/actions-setup-docker@master
7683
with:
7784
docker_version: 20.10
7885
docker_channel: stable
79-
- name: Publish Images
86+
- name: Set up Docker Buildx
87+
uses: docker/setup-buildx-action@v3
88+
- name: Publish Images (amd64 + arm64)
89+
run: |
90+
set -euo pipefail
91+
base=${{ env.BASE_TAG }}
92+
cur=${{ env.CUR_TAG }}
93+
: > "$GITHUB_WORKSPACE/_images_all.txt"
94+
95+
for arch in amd64 arm64; do
96+
export ARCH="$arch"
97+
tar -zxf "${{ env.ASSETS_DIR }}/harbor-offline-installer-${cur}-${arch}.tgz"
98+
docker load -i ./harbor/harbor.${base}.tar.gz
99+
images="$(docker images --format "{{.Repository}}" --filter=reference="goharbor/*:${base}" | xargs)"
100+
echo "$images" | tr ' ' '\n' >> "$GITHUB_WORKSPACE/_images_all.txt"
101+
source tools/release/release_utils.sh
102+
publishImages "$cur" "$base" "${{ secrets.DOCKER_HUB_USERNAME }}" "${{ secrets.DOCKER_HUB_PASSWORD }}" $images
103+
publishPackages "$cur" "$base" "${{ github.actor }}" "${{ secrets.GITHUB_TOKEN }}" $images
104+
rm -rf harbor
105+
done
106+
- name: Create multi-arch manifests
80107
run: |
81-
tar -zxf ${{ env.OFFLINE_PACKAGE_PATH }}
82-
docker load -i ./harbor/harbor.${{ env.BASE_TAG }}.tar.gz
83-
images="$(docker images --format "{{.Repository}}" --filter=reference='goharbor/*:${{ env.BASE_TAG }}' | xargs)"
84-
source tools/release/release_utils.sh
85-
publishImages ${{ env.CUR_TAG }} ${{ env.BASE_TAG }} "${{ secrets.DOCKER_HUB_USERNAME }}" "${{ secrets.DOCKER_HUB_PASSWORD }}" $images
86-
publishPackages ${{ env.CUR_TAG }} ${{ env.BASE_TAG }} ${{ github.actor }} ${{ secrets.GITHUB_TOKEN }} $images
108+
set -euo pipefail
109+
cur=${{ env.CUR_TAG }}
110+
printf '%s\n' "${{ secrets.DOCKER_HUB_PASSWORD }}" | docker login -u "${{ secrets.DOCKER_HUB_USERNAME }}" --password-stdin
111+
printf '%s\n' "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u "${{ github.actor }}" --password-stdin
112+
sort -u "$GITHUB_WORKSPACE/_images_all.txt" | while IFS= read -r repo; do
113+
[ -z "$repo" ] && continue
114+
docker buildx imagetools create -t "${repo}:${cur}" \
115+
"${repo}:${cur}-amd64" \
116+
"${repo}:${cur}-arm64"
117+
docker buildx imagetools create -t "ghcr.io/${repo}:${cur}" \
118+
"ghcr.io/${repo}:${cur}-amd64" \
119+
"ghcr.io/${repo}:${cur}-arm64"
120+
done
121+
docker logout ghcr.io
122+
docker logout
87123
- name: Generate release notes
88124
run: |
89125
release_notes_path=$(pwd)/release-notes.txt
@@ -95,17 +131,23 @@ jobs:
95131
with:
96132
body_path: ${{ env.RELEASE_NOTES_PATH }}
97133
files: |
98-
${{ env.OFFLINE_PACKAGE_PATH }}
99-
${{ env.OFFLINE_SIGSTORE_PATH }}
134+
${{ env.ASSETS_DIR }}/harbor-offline-installer-*-amd64.tgz
135+
${{ env.ASSETS_DIR }}/harbor-offline-installer-*-amd64.tgz.sigstore.json
136+
${{ env.ASSETS_DIR }}/harbor-offline-installer-*-arm64.tgz
137+
${{ env.ASSETS_DIR }}/harbor-offline-installer-*-arm64.tgz.sigstore.json
100138
${{ env.MD5SUM_PATH }}
101139
- name: GA Release
102140
uses: softprops/action-gh-release@v2
103141
if: ${{ env.PRERELEASE == 'false' }}
104142
with:
105143
body_path: ${{ env.RELEASE_NOTES_PATH }}
106144
files: |
107-
${{ env.OFFLINE_PACKAGE_PATH }}
108-
${{ env.OFFLINE_SIGSTORE_PATH }}
109-
${{ env.ONLINE_PACKAGE_PATH }}
110-
${{ env.ONLINE_SIGSTORE_PATH }}
145+
${{ env.ASSETS_DIR }}/harbor-offline-installer-*-amd64.tgz
146+
${{ env.ASSETS_DIR }}/harbor-offline-installer-*-amd64.tgz.sigstore.json
147+
${{ env.ASSETS_DIR }}/harbor-offline-installer-*-arm64.tgz
148+
${{ env.ASSETS_DIR }}/harbor-offline-installer-*-arm64.tgz.sigstore.json
149+
${{ env.ASSETS_DIR }}/harbor-online-installer-*-amd64.tgz
150+
${{ env.ASSETS_DIR }}/harbor-online-installer-*-amd64.tgz.sigstore.json
151+
${{ env.ASSETS_DIR }}/harbor-online-installer-*-arm64.tgz
152+
${{ env.ASSETS_DIR }}/harbor-online-installer-*-arm64.tgz.sigstore.json
111153
${{ env.MD5SUM_PATH }}

Makefile

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,13 @@ TOOLSPATH=$(BUILDPATH)/tools
7272
CORE_PATH=$(BUILDPATH)/src/core
7373
PORTAL_PATH=$(BUILDPATH)/src/portal
7474
CHECKENVCMD=checkenv.sh
75+
ARCH ?= $(shell uname -m)
76+
ifeq ($(ARCH), aarch64)
77+
ARCH := arm64
78+
endif
79+
ifeq ($(ARCH), x86_64)
80+
ARCH := amd64
81+
endif
7582

7683
# parameters
7784
REGISTRYSERVER=
@@ -126,7 +133,11 @@ DISTRIBUTION_SRC=https://github.com/goharbor/distribution.git
126133

127134
# dependency binaries
128135
REGISTRYURL=
129-
TRIVY_DOWNLOAD_URL=https://github.com/aquasecurity/trivy/releases/download/$(TRIVYVERSION)/trivy_$(TRIVYVERSION:v%=%)_Linux-64bit.tar.gz
136+
ifeq ($(ARCH), arm64)
137+
TRIVY_DOWNLOAD_URL = https://github.com/aquasecurity/trivy/releases/download/$(TRIVYVERSION)/trivy_$(TRIVYVERSION:v%=%)_Linux-ARM64.tar.gz
138+
else
139+
TRIVY_DOWNLOAD_URL = https://github.com/aquasecurity/trivy/releases/download/$(TRIVYVERSION)/trivy_$(TRIVYVERSION:v%=%)_Linux-64bit.tar.gz
140+
endif
130141
TRIVY_ADAPTER_DOWNLOAD_URL=https://github.com/goharbor/harbor-scanner-trivy/archive/refs/tags/$(TRIVYADAPTERVERSION).tar.gz
131142

132143
define VERSIONS_FOR_PREPARE
@@ -366,22 +377,22 @@ check_environment:
366377
compile_core: lint_apis gen_apis
367378
@echo "compiling binary for core (golang image)..."
368379
@echo $(GOBUILDPATHINCONTAINER)
369-
@$(DOCKERCMD) run --rm -v $(BUILDPATH):$(GOBUILDPATHINCONTAINER) -w $(GOBUILDPATH_CORE) $(GOBUILDIMAGE) $(GOIMAGEBUILD_CORE) -o $(GOBUILDPATHINCONTAINER)/$(GOBUILDMAKEPATH_CORE)/$(CORE_BINARYNAME)
380+
@$(DOCKERCMD) run --rm --platform linux/$(ARCH) -v $(BUILDPATH):$(GOBUILDPATHINCONTAINER) -w $(GOBUILDPATH_CORE) $(GOBUILDIMAGE) $(GOIMAGEBUILD_CORE) -o $(GOBUILDPATHINCONTAINER)/$(GOBUILDMAKEPATH_CORE)/$(CORE_BINARYNAME)
370381
@echo "Done."
371382

372383
compile_jobservice:
373384
@echo "compiling binary for jobservice (golang image)..."
374-
@$(DOCKERCMD) run --rm -v $(BUILDPATH):$(GOBUILDPATHINCONTAINER) -w $(GOBUILDPATH_JOBSERVICE) $(GOBUILDIMAGE) $(GOIMAGEBUILD_COMMON) -o $(GOBUILDPATHINCONTAINER)/$(GOBUILDMAKEPATH_JOBSERVICE)/$(JOBSERVICEBINARYNAME)
385+
@$(DOCKERCMD) run --rm --platform linux/$(ARCH) -v $(BUILDPATH):$(GOBUILDPATHINCONTAINER) -w $(GOBUILDPATH_JOBSERVICE) $(GOBUILDIMAGE) $(GOIMAGEBUILD_COMMON) -o $(GOBUILDPATHINCONTAINER)/$(GOBUILDMAKEPATH_JOBSERVICE)/$(JOBSERVICEBINARYNAME)
375386
@echo "Done."
376387

377388
compile_registryctl:
378389
@echo "compiling binary for harbor registry controller (golang image)..."
379-
@$(DOCKERCMD) run --rm -v $(BUILDPATH):$(GOBUILDPATHINCONTAINER) -w $(GOBUILDPATH_REGISTRYCTL) $(GOBUILDIMAGE) $(GOIMAGEBUILD_COMMON) -o $(GOBUILDPATHINCONTAINER)/$(GOBUILDMAKEPATH_REGISTRYCTL)/$(REGISTRYCTLBINARYNAME)
390+
@$(DOCKERCMD) run --rm --platform linux/$(ARCH) -v $(BUILDPATH):$(GOBUILDPATHINCONTAINER) -w $(GOBUILDPATH_REGISTRYCTL) $(GOBUILDIMAGE) $(GOIMAGEBUILD_COMMON) -o $(GOBUILDPATHINCONTAINER)/$(GOBUILDMAKEPATH_REGISTRYCTL)/$(REGISTRYCTLBINARYNAME)
380391
@echo "Done."
381392

382393
compile_standalone_db_migrator:
383394
@echo "compiling binary for standalone db migrator (golang image)..."
384-
@$(DOCKERCMD) run --rm -v $(BUILDPATH):$(GOBUILDPATHINCONTAINER) -w $(GOBUILDPATH_STANDALONE_DB_MIGRATOR) $(GOBUILDIMAGE) $(GOIMAGEBUILD_COMMON) -o $(GOBUILDPATHINCONTAINER)/$(GOBUILDMAKEPATH_STANDALONE_DB_MIGRATOR)/$(STANDALONE_DB_MIGRATOR_BINARYNAME)
395+
@$(DOCKERCMD) run --rm --platform linux/$(ARCH) -v $(BUILDPATH):$(GOBUILDPATHINCONTAINER) -w $(GOBUILDPATH_STANDALONE_DB_MIGRATOR) $(GOBUILDIMAGE) $(GOIMAGEBUILD_COMMON) -o $(GOBUILDPATHINCONTAINER)/$(GOBUILDMAKEPATH_STANDALONE_DB_MIGRATOR)/$(STANDALONE_DB_MIGRATOR_BINARYNAME)
385396
@echo "Done."
386397

387398
compile: check_environment versions_prepare compile_core compile_jobservice compile_registryctl
@@ -422,6 +433,7 @@ build:
422433
-e PULL_BASE_FROM_DOCKERHUB=$(PULL_BASE_FROM_DOCKERHUB) -e BUILD_BASE=$(BUILD_BASE) \
423434
-e REGISTRYUSER=$(REGISTRYUSER) -e REGISTRYPASSWORD=$(REGISTRYPASSWORD) \
424435
-e PUSHBASEIMAGE=$(PUSHBASEIMAGE) -e GOBUILDIMAGE=$(GOBUILDIMAGE) \
436+
-e ARCH=$(ARCH) \
425437
-e RELEASEVERSION=$(RELEASEVERSION) -e GITCOMMIT=$(GITCOMMIT)
426438

427439
build_standalone_db_migrator: compile_standalone_db_migrator

0 commit comments

Comments
 (0)