-
Notifications
You must be signed in to change notification settings - Fork 2
fix: export 문제 해결 #83
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
해당 부분은 deploy(cd) 스크립트에서도 에러로 발견이 되지 않았던 거죠?! 서버에서 직접 확인한 부분인가요? |
방금 시도해봤는데 빌드는 잘 되도 정상적인 서버 실행이 다른 이유로 안 되는 경우는 오류가 일어나는 것 같네요. 순환 참조, 모듈 내보내기 등의 문제가 발생한다는게, 실질적으로 린트 오류나 코드 오류가 아니어서 빌드만 잘 되는 것 같습니다. |
Grit03
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
도커 띄우기에 성공했다고 해서, 이미지가 제대로 실행되고 있다는 건 추가적인 로직으로 판단해야하는 것 같습니다.
도커 컴포즈에서 health check 속성도 넣을 수 있는 것 같은데, 이런 속성과 스크립트를 사용해서 cd 스크립트에 서버가 제대로 시작되었을 때만 CD를 통과하도록 스크립트를 작성할 수 있을 것 같네요!
# docker-compose.prod.yml
backend:
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:3000/api/health"]
interval: 10s
timeout: 5s
retries: 3
start_period: 30s
# 기존 방식 (그냥 켜고 끝냄, 서버 상태 모름)
docker compose up -d
# 추천 방식 (healthcheck가 'healthy'가 될 때까지 터미널을 잡고 대기함)
docker compose up -d --wait다만, 이렇게 되면 서버 실행 실패 시 서버가 꺼진 상태로 CD가 끝나버린다는 단점이 있어요. 따라서 제대로 활용하려면, 실패시 이전 이미지를 다시 띄우도록 하는 로직도 필요해보이긴 합니다..!!
아... 그러면 이미지를 다 지우지 말고, 이전 버전을 남겨 놓는 방법도 좋을 것 같네요. 알겠습니다! |
|

✅ 작업 내용
WidgetModule에 WIDGET_SERVICE로 내보내는 부분이 빠져있어서 원격 백엔드 도커가 계속 재시작되고 있었습니다. 추가해서 잘 동작하도록 했습니다.📸 스크린샷 / 데모 (옵션)
💬 참고 사항
NestJS 서버 시 발생하는 버그는 ci 스크립트로 못 발견하는 것 같아서, 서버 시작 시 발생하는 버그도 잡을 수 있도록 수정하는 것도 좋아보여요.