fix(ci): 배포 시 jar 경로 자가치유 (컨테이너 stop→경로 정리→배치→재기동)
CI / build (push) Has been cancelled
Deploy (dev) / deploy (push) Failing after 11m58s

빈 디렉토리로 잘못 생성된 마운트 경로(corrupt jarfile 원인)까지 rm -rf 로 정리.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
sb
2026-07-11 18:14:35 +09:00
parent 1cdff136c3
commit a29aadc5ff
2 changed files with 7 additions and 2 deletions
+3 -1
View File
@@ -58,7 +58,9 @@ jobs:
$SSH "$DEPLOY_USER@$DEPLOY_HOST" "mkdir -p \"\$(dirname '$DEPLOY_JAR_PATH')\" && cat > '$DEPLOY_JAR_PATH.new'" < "$JAR"
$SSH "$DEPLOY_USER@$DEPLOY_HOST" "\
docker compose -f '$COMPOSE_FILE' stop api 2>/dev/null || true; \
rm -rf '$DEPLOY_JAR_PATH'; \
mv -f '$DEPLOY_JAR_PATH.new' '$DEPLOY_JAR_PATH'; \
docker compose -f '$COMPOSE_FILE' up -d --force-recreate api; \
docker compose -f '$COMPOSE_FILE' ps api"
sleep 2; docker compose -f '$COMPOSE_FILE' ps api"
echo "✅ 운영(api) 재기동 완료"
+4 -1
View File
@@ -63,8 +63,11 @@ jobs:
# jar 전송: scp(SFTP) 경로 이슈 회피 위해 ssh stdin(cat) 사용. 임시파일 후 mv(원자적 교체).
$SSH "$DEPLOY_USER@$DEPLOY_HOST" "mkdir -p \"\$(dirname '$DEPLOY_JAR_PATH')\" && cat > '$DEPLOY_JAR_PATH.new'" < "$JAR"
# 컨테이너 정지(마운트 해제) → 경로 정리(빈 디렉토리로 잘못 생성된 경우 포함) → jar 배치 → 재기동
$SSH "$DEPLOY_USER@$DEPLOY_HOST" "\
docker compose -f '$COMPOSE_FILE' stop dev-api 2>/dev/null || true; \
rm -rf '$DEPLOY_JAR_PATH'; \
mv -f '$DEPLOY_JAR_PATH.new' '$DEPLOY_JAR_PATH'; \
docker compose -f '$COMPOSE_FILE' up -d --force-recreate dev-api; \
docker compose -f '$COMPOSE_FILE' ps dev-api"
sleep 2; docker compose -f '$COMPOSE_FILE' ps dev-api"
echo "✅ dev-api 재기동 완료"