hospital-applets-api/hospital-deploy.sh
2023-02-17 17:10:16 +08:00

104 lines
2.3 KiB
Bash

#!/bin/bash
#进入项目目录
#cd /Users/wucongxing/Desktop/work/php/hospital-applets-api || exit
cd /data/www/hospital-applets-api || exit
#构建env
echo "
APP_NAME=gdxz
APP_ENV=dev
DB_DRIVER=mysql
DB_HOST=123.57.91.25
DB_PORT=3306
DB_DATABASE=internet_hospital
DB_USERNAME=root
DB_PASSWORD=Wucongxing1..
DB_CHARSET=utf8mb4
DB_COLLATION=utf8mb4_unicode_ci
DB_PREFIX=gdxz_
REDIS_HOST=123.57.91.25
REDIS_AUTH=Wucongxing1..
REDIS_PORT=6379
REDIS_DB=0
# jwt
JWT_SECRET=X8p44RvrFDlnrvHLN2juwK1sSAlFtfvdZJLLKt97DLf50W7TPOzCKDUZdVkW+PZzWIqPT8fyoXGBAcBK2faHiA==
">.env
#nginx_upstrame="/Users/wucongxing/Desktop/test/hospital-upstream.conf"
nginx_upstrame="/etc/nginx/upstream/hospital-upstream.conf"
#echo nginx_upstrame
#确定可使用端口
online_port=0
reload_port=0
ports_list=(9508 9509)
for i in "${ports_list[@]}";
do
ports_count=$(lsof -i:$i | wc -l)
if [[ $ports_count -eq 0 ]]; then
# 未占用 可使用
reload_port=$i
fi
if [[ $ports_count -ne 0 ]]; then
# 占用 需重启
online_port=$i
fi
done
if [[ $online_port == 0 ]]; then
reload_port=${ports_list[1]}
else
echo "当前端口 $online_port 使用中"
echo "重启使用端口 $reload_port"
fi
if [[ $reload_port == 0 ]]; then
echo '部署失败, 未获取到可用端口'
exit 1;
fi
# 定义负载
upstrame="
upstream hospital {
server 127.0.0.1:$reload_port;
}
"
echo "$upstrame" > $nginx_upstrame
#获取可用端口镜像数量
image=$(docker images "hospital-applets-api-$reload_port" | wc -l)
if [[ $image -eq 1 ]];then
# 无可用端口镜像
# 可用端口构建镜像
echo '可用端口构建镜像'
docker build -t "hospital-applets-api-$reload_port" .
else
# 存在可用端口镜像,删除镜像容器
docker rm "hospital-applets-api-$reload_port"
echo '可用端口构建镜像'
docker build -t "hospital-applets-api-$reload_port" .
fi
echo '启动新端口容器'
docker run --name "hospital-applets-api-$reload_port" -d -p "$reload_port":9501 "hospital-applets-api-$reload_port":latest
echo '重启nginx'
nginx -s reload
if [[ $online_port -ne 0 ]]; then
echo '停止原端口容器'
docker stop "hospital-applets-api-$online_port"
echo '删除原端口容器'
docker rm "hospital-applets-api-$online_port"
echo '删除原端口镜像'
docker rmi "hospital-applets-api-$online_port"
fi
echo "构建成功"