Conversation
There was a problem hiding this comment.
Code Review
This pull request modifies the rolling deployment script to target only the snackgame-server service during deployment and rollback. Review feedback highlights that this change might exclude other necessary services like Grafana, which was mentioned in the PR title, and suggests using the --no-deps flag to prevent unintended service restarts. Furthermore, the current rollback mechanism is identified as ineffective because it fails to revert to a previous image version after a pull command has already updated the local image.
|
|
||
| echo "[배포] 컨테이너 교체 중..." | ||
| docker compose up -d || rollback | ||
| docker compose up -d snackgame-server || rollback |
There was a problem hiding this comment.
PR 제목에 "Grafana Env 추가"가 언급되어 있으나, docker compose up 명령에 snackgame-server 서비스만 명시되어 있어 새롭게 추가된 Grafana 서비스가 시작되거나 업데이트되지 않을 수 있습니다. Grafana도 이 배포 프로세스에서 함께 관리되어야 한다면 서비스명을 생략하거나 Grafana 서비스를 명시적으로 포함하는 것을 검토해 주세요. 또한, scripts/deploy-dev.sh와 일관성을 유지하고 다른 서비스에 미치는 영향을 최소화하기 위해 --no-deps 옵션 사용을 권장하며, 105번 라인의 pull 명령도 특정 서비스만 대상으로 하도록 수정하는 것이 효율적입니다.
| docker compose up -d snackgame-server || rollback | |
| docker compose up -d --no-deps snackgame-server || rollback |
| echo "[롤백] 이전 컨테이너로 복구 중..." | ||
| cd "$COMPOSE_DIR" | ||
| docker compose up -d | ||
| docker compose up -d snackgame-server |
There was a problem hiding this comment.
현재의 rollback 방식은 실제 이전 이미지 버전으로의 복구를 수행하지 못하는 한계가 있습니다. 105번 라인에서 docker compose pull이 이미 수행되었기 때문에, 여기서 docker compose up을 다시 실행하더라도 로컬에 받아진 최신(문제가 발생한) 이미지를 그대로 사용하게 됩니다. 진정한 롤백을 위해서는 배포 전의 이미지 ID나 태그를 저장해두었다가 복구 시 해당 버전을 명시하여 실행하는 로직이 필요합니다. 또한, 배포 시와 마찬가지로 --no-deps 옵션을 추가하여 의도치 않은 서비스 재시작을 방지하는 것이 좋습니다.
| docker compose up -d snackgame-server | |
| docker compose up -d --no-deps snackgame-server |
* 피버타임 검증 시 점수가 두배가 되지 않는 현상 해결 (#226) * fix: 피버타임 검증 시 점수가 두배가 되지 않는 문제 해결 * refactor: 바뀐 dto에 맞게 BIZ 및 test 수정 * 세션 일시정지시 피버타임을 멈추지 못하던 문제 해결 (#227) * fix: 피버타임 검증 시 점수가 두배가 되지 않는 문제 해결 * refactor: 바뀐 dto에 맞게 BIZ 및 test 수정 * fix: 피버타임중 일시정지 시 피버타임도 멈추게 한다 * refactor: 인터페이스로 묶는다 * 피버타임 관련 문제 해결 (#228) * fix: 점수 증가 로직 오류 해결 * fix: 스트릭 발생 시각을 받는다 * refactor: 네이밍 수정 * fix(test): 스트릭 발생 시각 추가 * fix: 피버타임 검증 시 일반 스트릭이 검증안되던 문제해결 (#229) * fix: 피버타임 네트워크 지연 문제 해결 (#231) * 피버타임 일시정지 동기화 및 지연시간 문제 해결 (#232) * fix: 치팅 및 네트워크 지연 해결 * comment: 디버깅을 위한 로그 추가 * fix: session과 fevertime 일시정지 동기화 * OCI용 CD 파이프라인 마이그레이션 (#234) * fix: 치팅 및 네트워크 지연 해결 * comment: 디버깅을 위한 로그 추가 * fix: session과 fevertime 일시정지 동기화 * fix: 세션 예외 오류 해결 * feat: multipart 예외 핸들링 * refactor: CD 파이프라인 OCI로 마이그레이션 * fix: end response 분리 * OCI 경로 수정 (#236) * fix: 치팅 및 네트워크 지연 해결 * comment: 디버깅을 위한 로그 추가 * fix: session과 fevertime 일시정지 동기화 * fix: 세션 예외 오류 해결 * feat: multipart 예외 핸들링 * refactor: CD 파이프라인 OCI로 마이그레이션 * fix: end response 분리 * fix: oci 경로 수정 * fix: oci 옵션 수정 * fix: shebang 추가 * fix: oci 옵션 수정 * fix: drain 경합으로 인한 409 해결 * 모니터링 추가 (#241) * feat: drain 연결 종료 대기 추가 * feat: actuator 추가 * Grafana Env 추가 및 배포 스크립트 수정 (#243) * feat: drain 연결 종료 대기 추가 * feat: actuator 추가 * feat: grafana 환경변수 추가 * refactor: 앱 컨테이너만 교체하도록 수정
No description provided.