mirror of https://github.com/mongodb/mongo
90 lines
2.3 KiB
Bash
90 lines
2.3 KiB
Bash
DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)"
|
|
. "$DIR/prelude.sh"
|
|
|
|
set -o errexit
|
|
|
|
REGISTRY="664315256653.dkr.ecr.us-east-1.amazonaws.com"
|
|
REPO="mongo/mongostream"
|
|
IMAGE="$REGISTRY/$REPO"
|
|
GITSHA="$github_commit"
|
|
ARCH="$packager_arch"
|
|
DISTRO="$packager_distro"
|
|
PATCH="$is_patch"
|
|
|
|
if [ "$ARCH" == "aarch64" ]; then
|
|
ARCH="arm64"
|
|
fi
|
|
|
|
if [ "$ARCH" == "x86_64" ]; then
|
|
ARCH="amd64"
|
|
fi
|
|
|
|
TAG_SUFFIX="$ARCH"
|
|
|
|
# Only amazon2023 distros are supported today
|
|
if [ "$DISTRO" != "amazon2023" ]; then
|
|
echo "Unsupported distro: $DISTRO" >&2
|
|
exit 1
|
|
fi
|
|
|
|
if [ "$DISTRO" == "amazon2023" ]; then
|
|
TAG_SUFFIX="$ARCH-al2023"
|
|
fi
|
|
|
|
if [ "$PATCH" ]; then
|
|
TAG_SUFFIX="$TAG_SUFFIX-$revision_order_id"
|
|
fi
|
|
|
|
attempts=0
|
|
max_attempts=4
|
|
|
|
if [ "$1" == "--push" ]; then
|
|
while ! aws ecr get-login-password --region us-east-1 | docker login --password-stdin --username AWS $REGISTRY; do
|
|
[ "$attempts" -ge "$max_attempts" ] && exit 1
|
|
((attempts++))
|
|
sleep 10
|
|
done
|
|
fi
|
|
|
|
# Build Image
|
|
MONGOD_PATH="$(find ./src -type f -name 'mongod')"
|
|
MONGO_PATH="$(find ./src -type f -name 'mongo')"
|
|
echo "Current mongod path: $MONGOD_PATH"
|
|
echo "Current mongo path: $MONGO_PATH"
|
|
|
|
mkdir -p ./src/bin
|
|
mv "$MONGOD_PATH" ./src/bin/mongod
|
|
mv "$MONGO_PATH" ./src/bin/mongo
|
|
|
|
# track asp-js-engine repo clone from evergreen modules
|
|
JS_ENGINE_PATH_ABS="$(pwd)"/src/asp-js-engine/asp-js-engine
|
|
|
|
cd src
|
|
activate_venv
|
|
setup_db_contrib_tool
|
|
|
|
# Build docker build args array
|
|
BUILD_ARGS=(--build-arg "BUILD_VERSION=$GITSHA-$TAG_SUFFIX")
|
|
|
|
# Only add JS_ENGINE_PATH build arg if the path exists
|
|
# Note: Path must be relative to the build context (src directory)
|
|
if [ -d "$JS_ENGINE_PATH_ABS" ]; then
|
|
# Make path relative to src directory (current directory after cd src)
|
|
JS_ENGINE_PATH_REL="asp-js-engine/asp-js-engine"
|
|
echo "JS_ENGINE_PATH exists: $JS_ENGINE_PATH_ABS"
|
|
echo "Using relative path for Docker: $JS_ENGINE_PATH_REL"
|
|
BUILD_ARGS+=(--build-arg "JS_ENGINE_PATH=$JS_ENGINE_PATH_REL")
|
|
else
|
|
echo "JS_ENGINE_PATH does not exist: $JS_ENGINE_PATH_ABS (skipping build arg)"
|
|
fi
|
|
|
|
docker build "${BUILD_ARGS[@]}" -t "$IMAGE" -f ./src/mongo/db/modules/enterprise/src/streams/build/Dockerfile.al2023 .
|
|
|
|
docker tag "$IMAGE" "$IMAGE:$GITSHA-$TAG_SUFFIX"
|
|
|
|
docker images
|
|
|
|
if [ "$1" == "--push" ]; then
|
|
docker push "$IMAGE:$GITSHA-$TAG_SUFFIX"
|
|
fi
|