#!/bin/bash
#统一格式化打印输出信息
printMsg(){
echo "$(date +'%Y-%m-%d %H:%M:%S')-----------$1-----------"
}
#输入参数个数检查
if [ $# -lt 5 ]; then
printMsg "脚本参数错误,例如:./startup.sh projectName 8080 /home/projectName xxx.jar docker.io/java:8u111"
exit 1
fi
curTimeStr="$(date +'%Y%m%d%H%M%S')"
#启动的项目名称
proName=$1
#端口号
port=$2
#jar和配置文件所在目录的绝对路径
jarDir=$3
#jar名称
jarName=$4
#镜像名称
imageUrl=$5
#stop old
docker ps |grep ${proName} | awk '{print $1}' | xargs docker stop
docker run -it -d -p ${port}:${port} --name ${proName}-${curTimeStr} -v ${jarDir}:${jarDir} ${imageUrl} sh -c " cd ${jarDir} && java -jar ${jarDir}/${jarName} --server.port=${port}"