DOCS/journey/troubleshooting/260311_24자동배포_0초종료_runtime_ssot불일치_이슈.md

2.9 KiB

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

24 자동배포 0초 종료와 runtime SSOT 불일치 이슈

관련 문서

문제

  • rb8001 최신 커밋 푸시 후 Gitea Actions cicd.yml0s로 종료되고 자동 배포가 실제로 수행되지 않았다.
  • 같은 시점에 24 실행 서버 rb8001 컨테이너는 재시작되지 않았고, 수동 docker compose down && docker compose up -d --build 후에만 코드가 반영됐다.

확인된 사실

  • 현재 24 실행 서버의 runtime SSOT는 192.168.0.106이다.
  • 과거 24 주소 192.168.219.52는 런타임과 영구 설정 모두에서 제거돼야 하는 대상으로 이미 정리돼 있다.
  • 24 실행면의 공용 런타임 값은 /home/admin/workspace-config/runtime.env, /home/admin/workspace-config/secrets.env가 SSOT다.
  • 기존 인프라 문서상 배포 실패의 대표 원인은 DEPLOY_PROJECT_DIR 같은 단일 기준을 안 쓰고 서비스별 하드코딩 경로/값을 남긴 경우였다.
  • 이번 건은 자동 배포가 실행되지 않았지만, 같은 서버에서 수동 배포는 정상 성공했다.
  • rb8001/.gitea/workflows/cicd.ymlsecrets.*vars.*가 아니라 저장소 루트 .env.deploy를 직접 읽도록 작성돼 있다.
  • 현재 rb8001 저장소에는 .env.deploy가 없고 .env.deploy.example만 존재한다.
  • rb8001/.env.deploy.example에는 아직 DEPLOY_SSH_HOST=192.168.219.45, DEPLOY_SSH_PORT=51123가 남아 있다.
  • 반면 skill_email, robeing-monitor, skill-rag-file의 실제 .env.deploy는 모두 DEPLOY_SSH_HOST=192.168.0.106, DEPLOY_SSH_PORT=51124로 맞춰져 있다.
  • Gitea API 기준 rb8001 저장소의 Actions secrets/variables 목록은 현재 빈 배열([])이다.

현재 해석

  • 애플리케이션 코드 자체 문제보다는 Gitea Actions -> 24 배포 경로의 SSOT 불일치 가능성이 높다.
  • 특히 rb8001은 다른 서비스와 달리 .env.deploy 실파일이 없고, 예시 파일도 구주소를 가리켜 자동 배포 경로가 SSOT에 수렴하지 않은 상태다.

직접 영향

  • git push origin main이 배포 완료를 의미하지 않게 된다.
  • 운영자가 수동 배포로 개입해야 하므로 배포 재현성과 추적성이 깨진다.

한 줄 결론

  • 이번 자동 배포 실패는 24 실행면 runtime SSOTGitea Actions 배포 경로가 다시 어긋났을 가능성이 높은 상태다.