126 lines
3.2 KiB
Bash
Executable File
126 lines
3.2 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
|
# shellcheck disable=SC1091
|
|
source "$SCRIPT_DIR/common.sh"
|
|
|
|
load_local_env
|
|
wait_for_docker
|
|
|
|
REBUILD=false
|
|
|
|
usage() {
|
|
cat <<'EOF'
|
|
用法:
|
|
./restart_local_service.sh live
|
|
./restart_local_service.sh --rebuild auth
|
|
./restart_local_service.sh golang
|
|
|
|
支持的服务:
|
|
gateway auth external other live order wallet console visual-monitor scheduling game-fruit golang
|
|
mysql redis mongo nacos zookeeper
|
|
rocketmq rocketmq-namesrv rocketmq-broker rocketmq-proxy
|
|
EOF
|
|
}
|
|
|
|
while [ "$#" -gt 0 ]; do
|
|
case "$1" in
|
|
--rebuild)
|
|
REBUILD=true
|
|
shift
|
|
;;
|
|
-h|--help)
|
|
usage
|
|
exit 0
|
|
;;
|
|
*)
|
|
break
|
|
;;
|
|
esac
|
|
done
|
|
|
|
if [ "$#" -ne 1 ]; then
|
|
usage >&2
|
|
exit 1
|
|
fi
|
|
|
|
SERVICE="$1"
|
|
|
|
if [ "$SERVICE" = "rocketmq-proxy" ]; then
|
|
SERVICE="rocketmq-proxy"
|
|
fi
|
|
|
|
case "$SERVICE" in
|
|
gateway|auth|external|other|live|order|wallet|console|visual-monitor|scheduling|game-fruit|golang|mysql|redis|mongo|nacos|zookeeper|rocketmq|rocketmq-namesrv|rocketmq-broker|rocketmq-proxy)
|
|
;;
|
|
*)
|
|
echo "unknown service: $SERVICE" >&2
|
|
usage >&2
|
|
exit 1
|
|
;;
|
|
esac
|
|
|
|
if [ "$REBUILD" = true ] && is_java_service "$SERVICE"; then
|
|
"$SCRIPT_DIR/build_local_backend.sh" "$SERVICE"
|
|
fi
|
|
|
|
if [ "$SERVICE" = "rocketmq" ]; then
|
|
compose up -d --remove-orphans --force-recreate rocketmq-namesrv rocketmq-init rocketmq-broker rocketmq-proxy
|
|
elif [ "$SERVICE" = "other" ] && ! local_rocketmq_disabled; then
|
|
compose up -d --remove-orphans rocketmq-namesrv rocketmq-init rocketmq-broker rocketmq-proxy
|
|
wait_local_rocketmq
|
|
compose up -d --no-deps --force-recreate "$SERVICE"
|
|
elif [ "$SERVICE" = "rocketmq-broker" ]; then
|
|
compose up -d --remove-orphans rocketmq-namesrv rocketmq-init rocketmq-broker
|
|
elif [ "$SERVICE" = "rocketmq-proxy" ]; then
|
|
compose up -d --remove-orphans rocketmq-namesrv rocketmq-init rocketmq-broker rocketmq-proxy
|
|
else
|
|
compose up -d --no-deps --force-recreate "$SERVICE"
|
|
fi
|
|
|
|
case "$SERVICE" in
|
|
gateway|auth|external|other|live|order|wallet|console|visual-monitor|scheduling|game-fruit|golang)
|
|
wait_service_port "$SERVICE" 120
|
|
;;
|
|
mysql)
|
|
wait_container_healthy chatapp3-local-mysql 120
|
|
;;
|
|
redis)
|
|
wait_container_healthy chatapp3-local-redis 120
|
|
;;
|
|
mongo)
|
|
wait_container_healthy chatapp3-local-mongo 120
|
|
;;
|
|
nacos)
|
|
require_env LIKEI_LOCAL_NACOS_PORT
|
|
wait_http "http://127.0.0.1:${LIKEI_LOCAL_NACOS_PORT}/nacos/" 120
|
|
;;
|
|
zookeeper)
|
|
wait_container_healthy chatapp3-local-zookeeper 120
|
|
;;
|
|
rocketmq)
|
|
wait_local_rocketmq
|
|
;;
|
|
rocketmq-namesrv)
|
|
require_env LIKEI_LOCAL_ROCKETMQ_NAMESRV_PORT
|
|
wait_container_healthy chatapp3-local-rocketmq-namesrv 120
|
|
wait_tcp_port 127.0.0.1 "${LIKEI_LOCAL_ROCKETMQ_NAMESRV_PORT}" 120
|
|
;;
|
|
rocketmq-broker)
|
|
wait_container_healthy chatapp3-local-rocketmq-broker 120
|
|
wait_rocketmq_cluster 120
|
|
;;
|
|
rocketmq-proxy)
|
|
require_env LIKEI_LOCAL_ROCKETMQ_PROXY_GRPC_PORT
|
|
wait_container_healthy chatapp3-local-rocketmq-proxy 120
|
|
wait_tcp_port 127.0.0.1 "${LIKEI_LOCAL_ROCKETMQ_PROXY_GRPC_PORT}" 120
|
|
;;
|
|
esac
|
|
|
|
if [ "$SERVICE" = "rocketmq" ]; then
|
|
compose ps rocketmq-namesrv rocketmq-broker rocketmq-proxy
|
|
else
|
|
compose ps "$SERVICE"
|
|
fi
|