--- tags: [infra, gitea-actions, deploy, 24-server, runtime, research] --- # 24 자동배포 0초 종료와 runtime SSOT 불일치 리서치 ## 관련 문서 - [24 자동배포 0초 종료와 runtime SSOT 불일치 이슈](../troubleshooting/260311_24자동배포_0초종료_runtime_ssot불일치_이슈.md) - [24서버 robeing runtime workspace-config 단일화](../worklog/260310_24서버_robeing_runtime_workspace_config_단일화.md) - [24서버 우분투 터미널 불가, 네트워크 대역 오류, python3-apt 복구 기록](../troubleshooting/260309_24서버_우분투터미널불가_네트워크대역오류_python3apt복구.md) - [23임시배포 env.deploy SSOT 및 배포실패 근본원인 해결](../troubleshooting/260305_23임시배포_envdeploy_ssot_및_배포실패_근본원인_해결.md) ## 목적 - 이번 자동 배포 `0s` 종료를 `애플리케이션 문제`가 아니라 `인프라 배포 경로 SSOT 불일치` 관점에서 닫기 위한 확인 포인트를 정리한다. ## 확인된 SSOT - 24 실행 서버 기준 주소: `192.168.0.106` - 과거 24 주소: `192.168.219.52` 사용 금지 - 24 실행면 공통 런타임 값 기준: `/home/admin/workspace-config/runtime.env`, `/home/admin/workspace-config/secrets.env` - 배포 경로 기준: 서비스별 하드코딩이 아니라 workflow 변수/secret의 단일 기준 사용 ## 이번 문제에 가장 가까운 원인 후보 1. `rb8001` 저장소에 `.env.deploy` 실파일이 없어 workflow가 시작 직후 필수 파일 검증에서 실패한다. 2. `.env.deploy.example`가 아직 `192.168.219.45:51123`를 가리켜 복원하더라도 잘못된 값을 주입할 위험이 있다. 3. repo-level Actions secrets/variables가 비어 있어, 현재 workflow를 대체할 다른 배포값 주입 경로도 없다. 4. workflow가 `DEPLOY_PROJECT_DIR` 대신 오래된 절대경로를 사용한다. ## 이번 이슈에서 중요한 해석 - 수동 배포가 같은 서버에서 정상 성공했기 때문에 `rb8001` 코드, Dockerfile, compose 자체가 주원인일 가능성은 낮다. - 따라서 우선순위는 `workflow가 읽는 실제 배포값 파일(.env.deploy)`, `예시 파일의 구주소`, `보완용 secret/variable 부재` 확인이다. - 기존 인프라 문서와도 일치하게, 이런 배포 실패는 대개 애플리케이션보다 `경로/권한/런타임 값`의 단일 기준 붕괴에서 발생한다. ## 닫힘에 필요한 최소 확인 - `cicd.yml`의 실제 deploy host/port/path 참조값 - `rb8001/.env.deploy` 실파일 존재 여부 - `.env.deploy.example`의 구주소 제거 여부 - Gitea Actions secret/variable 부재를 유지할지, 변수 기반으로 바꿀지 결정 - task가 왜 `0s`로 끝났는지 runner/task 로그 확인 ## 결론 - 현재는 가설 수준을 넘어서, `rb8001` 자동 배포 경로가 `.env.deploy` 부재와 구주소 예시 파일 때문에 실제 SSOT에 수렴하지 않았음`이 실증된 상태다.