frontend 성능 개선
This commit is contained in:
Executable
+92
@@ -0,0 +1,92 @@
|
||||
#!/usr/bin/env bash
|
||||
# GoldenChart — 소스 push 없이 서버 deploy.sh만 실행 (재배포)
|
||||
#
|
||||
# 사용:
|
||||
# ./server-restart.sh
|
||||
# ./server-restart.sh --frontend
|
||||
# ./server-restart.sh --backend
|
||||
# SERVICE_NAME=docker-only ./server-restart.sh
|
||||
#
|
||||
set -euo pipefail
|
||||
|
||||
ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
cd "$ROOT"
|
||||
|
||||
RED='\033[0;31m'
|
||||
GREEN='\033[0;32m'
|
||||
YELLOW='\033[1;33m'
|
||||
CYAN='\033[0;36m'
|
||||
NC='\033[0m'
|
||||
|
||||
# shellcheck disable=SC1091
|
||||
source "$ROOT/scripts/deploy-target.defaults"
|
||||
if [[ -f "$ROOT/scripts/deploy-target.local.env" ]]; then
|
||||
# shellcheck disable=SC1091
|
||||
source "$ROOT/scripts/deploy-target.local.env"
|
||||
fi
|
||||
|
||||
REMOTE_HOST="${REMOTE_HOST:-exdev.co.kr}"
|
||||
REMOTE_USER="${REMOTE_USER:-aidev}"
|
||||
REMOTE_PORT="${REMOTE_PORT:-22}"
|
||||
REMOTE_DEPLOY_SCRIPT="${REMOTE_DEPLOY_SCRIPT:-/Volumes/ADATA/git/deploy.sh}"
|
||||
SERVICE_NAME="${SERVICE_NAME:-all}"
|
||||
SSH_TARGET="${REMOTE_USER}@${REMOTE_HOST}"
|
||||
|
||||
SSH_CMD=(ssh -o StrictHostKeyChecking=no -o IdentitiesOnly=yes -p "$REMOTE_PORT")
|
||||
|
||||
print_usage() {
|
||||
cat <<EOF
|
||||
사용법: $0 [옵션]
|
||||
|
||||
(기본) git push 없이 서버 deploy.sh 실행 (전체 재배포)
|
||||
--frontend SERVICE_NAME=frontend
|
||||
--backend SERVICE_NAME=backend
|
||||
--docker-only SERVICE_NAME=docker-only (이미지 빌드 생략, compose up)
|
||||
--service NAME SERVICE_NAME=NAME
|
||||
--host HOST SSH 호스트 (기본: $REMOTE_HOST)
|
||||
--user USER SSH 사용자 (기본: $REMOTE_USER)
|
||||
--script PATH 서버 deploy.sh 경로 (기본: $REMOTE_DEPLOY_SCRIPT)
|
||||
-h, --help 도움말
|
||||
|
||||
실행 명령 (내부):
|
||||
ssh ${SSH_TARGET} 'SERVICE_NAME=... ${REMOTE_DEPLOY_SCRIPT}'
|
||||
|
||||
설정: scripts/deploy-target.defaults
|
||||
scripts/deploy-target.local.env (선택)
|
||||
EOF
|
||||
}
|
||||
|
||||
while [[ $# -gt 0 ]]; do
|
||||
case "$1" in
|
||||
--frontend) SERVICE_NAME=frontend; shift ;;
|
||||
--backend) SERVICE_NAME=backend; shift ;;
|
||||
--docker-only) SERVICE_NAME=docker-only; shift ;;
|
||||
--service) SERVICE_NAME="$2"; shift 2 ;;
|
||||
--host) REMOTE_HOST="$2"; SSH_TARGET="${REMOTE_USER}@${REMOTE_HOST}"; shift 2 ;;
|
||||
--user) REMOTE_USER="$2"; SSH_TARGET="${REMOTE_USER}@${REMOTE_HOST}"; shift 2 ;;
|
||||
--script) REMOTE_DEPLOY_SCRIPT="$2"; shift 2 ;;
|
||||
-h|--help) print_usage; exit 0 ;;
|
||||
*)
|
||||
echo -e "${RED}알 수 없는 옵션: $1${NC}" >&2
|
||||
print_usage
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
echo -e "${CYAN}▶ 서버 재배포 (push 없음)${NC}"
|
||||
echo -e " 대상 : ${SSH_TARGET}"
|
||||
echo -e " 스크립트: ${REMOTE_DEPLOY_SCRIPT}"
|
||||
echo -e " 서비스 : ${SERVICE_NAME}"
|
||||
echo ""
|
||||
|
||||
REMOTE_CMD="SERVICE_NAME=${SERVICE_NAME} ${REMOTE_DEPLOY_SCRIPT}"
|
||||
if "${SSH_CMD[@]}" "$SSH_TARGET" "$REMOTE_CMD"; then
|
||||
echo ""
|
||||
echo -e "${GREEN}✓ deploy.sh 완료${NC}"
|
||||
echo -e "${YELLOW}로그: ssh ${SSH_TARGET} 'tail -50 /Volumes/ADATA/logs/deploy/deploy.log'${NC}"
|
||||
else
|
||||
echo ""
|
||||
echo -e "${RED}✗ deploy.sh 실패${NC}" >&2
|
||||
exit 1
|
||||
fi
|
||||
Reference in New Issue
Block a user