Skip to content

fix: mcc infra update가 detach로 재기동하고 종료되도록 수정 - #100

Merged
MZC-CSC merged 1 commit into
developfrom
fix/infra-update-detach
Oct 14, 2026
Merged

MZC-CSC merged 1 commit into
developfrom
fix/infra-update-detach

Conversation

@MZC-CSC

@MZC-CSC MZC-CSC commented Oct 14, 2026 •

Copy link
Copy Markdown
Owner

변경 요약

./mcc infra update가 이미지 pull 후 docker compose up(포그라운드)에 붙어 명령이 끝나지 않던 문제를 고칩니다.

  • 원인: update.go는 detachFlag가 참이면 up -d를 쓰도록 돼 있지만, 이 변수는 run 명령 전용이고 -d 플래그도 runCmd에만 등록돼 있어 update에서는 항상 false였습니다. (./mcc infra update --help에 -s만 존재) 결과적으로 update는 항상 attach 상태로 붙어 종료되지 않았고, Ctrl+C로 빠지면 compose가 대상 컨테이너를 stop시켰습니다.
  • 수정 (src/cmd/docker/update.go)
    • 재기동은 항상 docker compose up -d <서비스>로 실행 → 갱신 후 명령이 종료됩니다.
    • Run → RunE, SysCall → SysCallWithError: pull/up 실패 시 0이 아닌 종료코드를 반환하고, pull이 실패하면 재기동하지 않습니다. (run 명령의 기존 처리와 동일)
    • 도움말에 "detach로 재기동 후 종료, 상태는 infra info/docker logs로 확인" 안내 추가
  • 바이너리 재빌드: bin/mcc, conf/docker/tool/mcc (src/Makefile 기본 타깃). 기존과 동일하게 동적 링크, GLIBC 2.34 요구.
  • 문서: docs/mc-admin-cli-infra.md update 절에 동작 안내 한 줄 추가

테스트 결과

Gate 결과
go vet ./... PASS
go test ./... PASS (테스트 파일 없음)
make (bin/mcc, tool/mcc 빌드) PASS

참고: 실패 시 오류 메시지가 두 번 출력됩니다(cobra Error: + main 출력).

- update에 -d 플래그가 등록되지 않아(run 전용 detachFlag 참조) 항상
  포그라운드 docker compose up으로 붙어 명령이 끝나지 않던 문제 수정
- 재기동은 항상 up -d로 실행, pull/up 모두 SysCallWithError + RunE로
  실패 시 0이 아닌 종료코드 반환 (pull 실패 시 재기동하지 않음)
- bin/mcc, conf/docker/tool/mcc 재빌드
- docs/mc-admin-cli-infra.md에 update 동작 안내 추가
@MZC-CSC
MZC-CSC merged commit 719f500 into develop Oct 14, 2026
1 check passed
@MZC-CSC
MZC-CSC deleted the fix/infra-update-detach branch October 14, 2026 22:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants