diff --git a/src/content/CiCdGuide.tsx b/src/content/CiCdGuide.tsx index 0cb9c25..512b216 100644 --- a/src/content/CiCdGuide.tsx +++ b/src/content/CiCdGuide.tsx @@ -44,10 +44,13 @@ export default function CiCdGuide() { Gitea Actions 트리거 → act_runner (Docker 컨테이너)
↓
-npm ci → npm run build → dist/ 생성
-↓
- 배포 경로에 복사 → Nginx 서빙 + 프론트엔드: npm ci → npm run build → dist/ →{' '} + Nginx 서빙 +
++ 백엔드: mvn package → app.jar → .deploy-trigger →{' '} + systemd 자동 재시작
@@ -189,6 +192,16 @@ jobs: # 실행할 작업 목록- Java/Spring Boot 프로젝트의 워크플로우 예시입니다. 향후 gc-guide-api에 적용 예정입니다. + gc-guide-api 프로젝트의 실제 배포 워크플로우입니다. + Maven 컨테이너 이미지에서 빌드하고, JAR 파일을 배포 경로에 복사합니다. + 배포 트리거 파일이 갱신되면 systemd가 자동으로 서비스를 재시작합니다.
+ +maven:3.9-eclipse-temurin-17)에는 Node.js가 없어서{' '}
+ actions/checkout@v4를 사용할 수 없습니다.
+ 대신 git clone으로 소스를 가져옵니다.
+ /deploy/api/는 act_runner 컨테이너 설정에서
+ 호스트의 /devdata/services/guide/api/에
+ 마운트되어 있습니다. .deploy-trigger 파일이
+ 갱신되면 systemd path watcher가 감지하여 서비스를 자동 재시작합니다.
+ main 머지 → Gitea Actions 트리거 → Maven 빌드
+↓
+
+ app.jar 복사 + .deploy-trigger 갱신
+
↓
+
+ systemd path watcher 감지 →{' '}
+ gc-guide-api.service 재시작
+
↓
++ Spring Boot 앱 자동 기동 (포트 8082, prod 프로필) +
+
+ Java 빌드에 container 옵션으로 Maven 이미지를 직접 지정하면,
+ job 컨테이너에 Node.js가 설치되어 있지 않아 actions/checkout@v4가
+ 실패합니다. 이 경우 git clone으로 대체하고,
+ Gitea 내부 네트워크 주소(http://gitea:3000)를 사용합니다.
+
container 옵션 사용 시{' '}
+ actions/checkout@v4 대신{' '}
+ git clone 사용 필수 (Node.js 없음)
+ http://gitea:3000 사용
+ (GITHUB_SERVER_URL은 github.com으로 고정됨)
+ systemctl status gc-guide-api-watcher.pathsystemctl status gc-guide-apicat /devdata/services/guide/api/.deploy-triggerjournalctl -u gc-guide-api -n 50