blob: fd5382235483b89a210e804da06d3b7204e55807 [file] [log] [blame]
#!/bin/bash
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
# get parameters from command line
# convert tags
# build fe, be, ms
# find cpu arch
# download binary tar package.
# extract archive
#
usage() {
echo "$0 <options>
-v specify version to build.
Eg:
$0 -v x.x.x build the "x.x.x" version and the binary will download from https://doris.apache.org/zh-CN/download/ to download binary."
}
version=
OPTS="$(getopt -n "$0" -o 'v:' -- "$*")"
eval set -- "${OPTS}"
while true; do
case "$1" in
-v|--version)
version="$2"
shift 2
;;
--)
shift
break
;;
*)
usage
shift
exit 1
;;
esac
done
version=$(echo $version | sed 's/\s//g')
if [[ "x$version" == "x" ]]; then
usage
exit 1
fi
ARCH=$(uname -m)
url_arch=
sub_path=
if [[ "$ARCH" == "arm64" || "$ARCH" == "aarch64" ]]; then
url_arch="arm64"
sub_path="arm64"
else
url_arch="x64"
sub_path="amd64"
fi
if [[ "$url_arch" == "x64" ]]; then
avx=$(cat /proc/cpuinfo | grep avx2 | wc -l)
if [[ $avx -le 0 ]]; then
url_arch=$url_arch"-noavx2"
fi
fi
URL="https://apache-doris-releases.oss-accelerate.aliyuncs.com/apache-doris-${version}-bin-${url_arch}.tar.gz"
echo "wget the archive binary in current directory!"
wget $URL
echo "extract archive"
tar zxf "apache-doris-${version}-bin-${url_arch}.tar.gz"
echo "distribute binary to corresponding path."
mkdir -p fe/resource/${sub_path}/apache-doris-${version}-bin-${url_arch}
mkdir -p be/resource/${sub_path}/apache-doris-${version}-bin-${url_arch}
mkdir -p ms/resource/${sub_path}/apache-doris-${version}-bin-${url_arch}
mkdir -p broker/resource/${sub_path}/apache-doris-${version}-bin-${url_arch}
mv -f apache-doris-${version}-bin-${url_arch}/fe fe/resource/$sub_path/apache-doris-${version}-bin-${url_arch}/
mv -f apache-doris-${version}-bin-${url_arch}/be be/resource/$sub_path/apache-doris-${version}-bin-${url_arch}/
mv -f apache-doris-${version}-bin-${url_arch}/ms ms/resource/$sub_path/apache-doris-${version}-bin-${url_arch}/
mv -f apache-doris-${version}-bin-${url_arch}/extensions broker/resource/$sub_path/apache-doris-${version}-bin-${url_arch}/
echo "docker build base iamge,tag=apache/doris:base-latest"
cd base-image/ && docker build -t apache/doris:base-latest -f Dockerfile_base .
cd -
echo "docker build fe image,tag=doris.fe:${version}"
cd fe/ && docker build -t doris.fe:${version} -f Dockerfile --build-arg DORIS_VERSION=${version} .
cd -
echo "docker build be image,tag=doris.be:${version}"
cd be/ && docker build -t doris.be:${version} -f Dockerfile --build-arg DORIS_VERSION=${version} .
cd -
echo "docker build ms image,tag=doris.ms:${version}"
cd ms/ && docker build -t doris.ms:${version} -f Dockerfile --build-arg DORIS_VERSION=${version} .
cd -
echo "docker build broker image,tag=doris.broker:${version}"
cd broker/ && docker build -t doris.broker:${version} -f Dockerfile --build-arg DORIS_VERSION=${version} .