fix(deploy): 폴링 타이머로 백엔드 자동 재시작
- Docker 컨테이너에서 nsenter/inotify 불가 → 30초 폴링 타이머로 변경 - kcg-backend-deploy.timer: 30초마다 JAR mtime 체크 - kcg-backend-deploy.service: JAR 갱신 감지 시 systemd 파일 교체 + restart - watcher.path(inotify 기반) 제거, deploy.timer(폴링 기반)로 교체 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
부모
fe1de4bf51
커밋
150b236ee8
@ -75,12 +75,12 @@ jobs:
|
||||
echo "JAR 내부 application-prod.yml 감지 → 외부 파일 제거"
|
||||
fi
|
||||
|
||||
# systemd 서비스 파일 배포 (watcher가 반영)
|
||||
# systemd 서비스/타이머 파일 배포 (호스트 타이머가 감지하여 반영)
|
||||
cp deploy/kcg-backend.service $DEPLOY_DIR/kcg-backend.service
|
||||
cp deploy/kcg-backend-watcher.service $DEPLOY_DIR/kcg-backend-watcher.service
|
||||
cp deploy/kcg-backend-watcher.path $DEPLOY_DIR/kcg-backend-watcher.path
|
||||
cp deploy/kcg-backend-deploy.service $DEPLOY_DIR/kcg-backend-deploy.service
|
||||
cp deploy/kcg-backend-deploy.timer $DEPLOY_DIR/kcg-backend-deploy.timer
|
||||
|
||||
# JAR 교체 + 재시작 트리거
|
||||
# JAR 교체 (호스트 타이머가 JAR mtime 변경 감지 → 자동 재시작)
|
||||
cp backend/target/kcg.jar $DEPLOY_DIR/kcg.jar
|
||||
date '+%s' > $DEPLOY_DIR/.deploy-trigger
|
||||
echo "Backend deployed at $(date '+%Y-%m-%d %H:%M:%S')"
|
||||
echo "Host timer will detect JAR update and restart within 30s"
|
||||
|
||||
23
deploy/kcg-backend-deploy.service
Normal file
23
deploy/kcg-backend-deploy.service
Normal file
@ -0,0 +1,23 @@
|
||||
[Unit]
|
||||
Description=Check and restart KCG Backend if JAR updated
|
||||
|
||||
[Service]
|
||||
Type=oneshot
|
||||
ExecStart=/bin/bash -c '\
|
||||
DEPLOY_DIR=/devdata/services/kcg/backend; \
|
||||
JAR=$DEPLOY_DIR/kcg.jar; \
|
||||
MARKER=$DEPLOY_DIR/.last-restart; \
|
||||
[ ! -f "$JAR" ] && exit 0; \
|
||||
if [ "$JAR" -nt "$MARKER" ] 2>/dev/null || [ ! -f "$MARKER" ]; then \
|
||||
SYSTEMD_DIR=/etc/systemd/system; \
|
||||
CHANGED=0; \
|
||||
for f in kcg-backend.service kcg-backend-deploy.service kcg-backend-deploy.timer; do \
|
||||
if [ -f "$DEPLOY_DIR/$f" ] && ! diff -q "$DEPLOY_DIR/$f" "$SYSTEMD_DIR/$f" >/dev/null 2>&1; then \
|
||||
cp "$DEPLOY_DIR/$f" "$SYSTEMD_DIR/$f"; \
|
||||
CHANGED=1; \
|
||||
fi; \
|
||||
done; \
|
||||
[ "$CHANGED" = "1" ] && systemctl daemon-reload; \
|
||||
systemctl restart kcg-backend; \
|
||||
touch "$MARKER"; \
|
||||
fi'
|
||||
9
deploy/kcg-backend-deploy.timer
Normal file
9
deploy/kcg-backend-deploy.timer
Normal file
@ -0,0 +1,9 @@
|
||||
[Unit]
|
||||
Description=Poll for KCG Backend deploy (JAR update check)
|
||||
|
||||
[Timer]
|
||||
OnBootSec=60
|
||||
OnUnitActiveSec=30
|
||||
|
||||
[Install]
|
||||
WantedBy=timers.target
|
||||
불러오는 중...
Reference in New Issue
Block a user