TDengine/tests/compatibility/init_container.sh
2022-03-08 14:18:56 +08:00

105 lines
2.1 KiB
Bash
Executable file

#!/bin/bash
function usage() {
echo "$0"
echo -e "\t -w work dir"
echo -e "\t -d TDinternal code dir"
echo -e "\t -p old package"
echo -e "\t -q new package"
echo -e "\t -c container name"
echo -e "\t -h help"
}
while getopts "w:p:q:n:c:d:h" opt; do
case $opt in
w)
WORK_DIR=$OPTARG
;;
d)
CODE_DIR=$OPTARG
;;
p)
TAOS_PKG1=$OPTARG
;;
q)
TAOS_PKG2=$OPTARG
;;
c)
CONTAINER_NAME=$OPTARG
;;
n)
NET_NAME=$OPTARG
;;
h)
usage
exit 0
;;
\?)
echo "Invalid option: -$OPTARG"
usage
exit 0
;;
esac
done
if [ -z "$WORK_DIR" ]; then
usage
exit 1
fi
if [ -z "$TAOS_PKG1" ]; then
usage
exit 1
fi
if [ -z "$TAOS_PKG2" ]; then
usage
exit 1
fi
if [ -z "$CONTAINER_NAME" ]; then
usage
exit 1
fi
if [ -z "$NET_NAME" ]; then
usage
exit 1
fi
if [ -z "$CODE_DIR" ]; then
usage
exit 1
fi
if [ ! -f "$TAOS_PKG1" ]; then
echo "$TAOS_PKG1 not found"
exit 1
fi
if [ ! -f "$TAOS_PKG2" ]; then
echo "$TAOS_PKG2 not found"
exit 1
fi
pkg_name1=`basename $TAOS_PKG1`
pkg_dir1=`echo "$pkg_name1"|sed "s/-Linux-x64.tar.gz//"`
pkg_name2=`basename $TAOS_PKG2`
pkg_dir2=`echo "$pkg_name2"|sed "s/-Linux-x64.tar.gz//"`
RET=0
docker run -d --name $CONTAINER_NAME \
--hostname $CONTAINER_NAME \
--net $NET_NAME --ulimit core=-1 -it \
-v $TAOS_PKG1:/home/tdengine1.tar.gz:ro \
-v $TAOS_PKG2:/home/tdengine2.tar.gz:ro \
-v $WORK_DIR/coredump:/home/coredump \
-v $CODE_DIR:/home/TDinternal \
taos_test:v1.0 bash
RET=$?
if [ $RET -ne 0 ]; then
echo "docker run failed with $RET"
exit $RET
fi
docker exec $CONTAINER_NAME sh -c "cd /home;tar xzf tdengine1.tar.gz;tar xzf tdengine2.tar.gz;cd $pkg_dir1;./install.sh -v server -e no"
RET=$?
if [ $RET -ne 0 ]; then
echo "docker exec install.sh failed with $RET"
exit $RET
fi
exit 0