DOCS/journey/research/260311_24자동배포_0초종료_runtime_ssot불일치_리서치.md

2.9 KiB

tags
tags
infra
gitea-actions
deploy
24-server
runtime
research

24 자동배포 0초 종료와 runtime SSOT 불일치 리서치

관련 문서

목적

  • 이번 자동 배포 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에 수렴하지 않았음`이 실증된 상태다.