diff --git a/build/build-container.sh b/build/build-container.sh index 1b073119b..0f5a7aefe 100755 --- a/build/build-container.sh +++ b/build/build-container.sh @@ -5,14 +5,18 @@ set -ex SCRIPT_ROOT=$(dirname $(readlink -f $0)) PROJECT_ROOT=$(dirname ${SCRIPT_ROOT}) -IMAGE_TAG=$(git describe --tags --always --dirty) +OS=linux +ARCH=amd64 + +IMAGE_TAG=${OS}-${ARCH}-$(git describe --tags --always --dirty) IMAGE_NAME=alcionai/corso:${IMAGE_TAG} ${SCRIPT_ROOT}/build.sh echo "building container" -docker build -t ${IMAGE_NAME} \ - -f ${PROJECT_ROOT}/Dockerfile \ +docker buildx --tag ${IMAGE_NAME} \ + --platform ${OS}/${ARCH} \ + --file ${PROJECT_ROOT}/Dockerfile \ ${PROJECT_ROOT} echo "container built successfully ${IMAGE_NAME}" diff --git a/build/build.sh b/build/build.sh index 0b4b96239..f597eed3a 100755 --- a/build/build.sh +++ b/build/build.sh @@ -10,6 +10,9 @@ CORSO_BUILD_ARGS='' CORSO_BUILD_CONTAINER_DIR=/go/src/github.com/alcionai/corso CORSO_BUILD_CONTAINER_SRC_DIR=${CORSO_BUILD_CONTAINER_DIR}/src +GOOS=linux +GOARCH=amd64 + # temporary directory for caching go build mkdir -p /tmp/.corsobuild/cache # temporary directory for caching go modules (needed for fast cross-platform build) @@ -21,6 +24,9 @@ docker run --rm --mount type=bind,src=${SRC_DIR},dst=${CORSO_BUILD_CONTAINER_DIR --mount type=bind,src=/tmp/.corsobuild/mod,dst=/go/pkg/mod \ --workdir ${CORSO_BUILD_CONTAINER_SRC_DIR} \ --env GOCACHE=/tmp/.corsobuild/cache \ + --env GOOS=${GOOS} \ + --env GOARCH=${GOARCH} \ + --env GOCACHE=/tmp/.corsobuild/cache \ --entrypoint /usr/local/go/bin/go \ golang:1.18 \ build ${CORSO_BUILD_ARGS}