EC2 서버가 뻗어서 재부팅했다
EC2에 엮여있는 RDS도 DBeaver에서 로딩이 안 돼서 재부팅할 수 밖에 없었다..
(안 하고 싶었지만...)
서버를 재부팅했더니 잘 되던 api들이 502 Bad Gateway가 발생했다.
502는 다른 서버로부터 유효한 응답을 받지 못했을 때, 발생한다.
github actions 와 docker를 사용해서 올려놨었는데, 컨테이너가 중단되어 있는게 아닐까 싶어서 아래의 명령어로 확인해보았다.
$ sudo docker ps -a
8일 전에 만들어진 컨테이너가 Exited 상태인 것을 확인할 수 있었다.
$ sudo docker restart {컨테이너 id}
restart 명령어를 사용하여 컨테이너를 재시작시켰다.
api가 정상적으로 작동되는 것을 확인했으나, CI/CD가 제대로 이루어지지 않았다.
CI 단계에서 부터 문제가 생겨서 무한 로딩상태였다.
로그를 확인해보니 Gradle Setup 단계에서 “The operation was canceled” 에러가 발생했다.
Run gradle/actions/setup-gradle@v3
...
Restore Gradle state from cache
Error: The operation was canceled.
Setup Gradle이라는 이름의 액션에
gradle/actions/setup-gradle@v3 을 사용하고 있었는데,
gradle을 직접 커맨드라인에서 실행하도록 수정했다. 아래처럼 순서대로 명령어만 사용했다.
- name: Make gradlew executable
run: chmod +x ./gradlew
- name: Build with Gradle
run: ./gradlew clean build --stacktrace
이 부분 때문에 고민을 많이 했는데, GPT에게 물어봐서 해결했다..
※ gradle/actions/setup-gradle
※ ./gradlew를 직접 실행
그래서 yml 파일을 이처럼 수정하였고, 이후 push를 진행했을 때 CI/CD가 정상적으로 진행되었다.
