
Spring Boot 애플리케이션을 Docker 기반으로 EC2에 배포하고, Nginx를 통해 HTTPS + 도메인까지 연결한 상태였습니다.
GitHub Actions를 이용해 .jar 파일과 Dockerfile을 EC2로 전송하고,
배포 자동화를 수행하는 단계까지 완료했지만...

브라우저 접속 시 계속해서
502 Bad Gateway오류 발생 😱
https://도메인/api/test에 접속하면 502 Bad Gateway가 발생app.jar이 디렉토리로 존재함GitHub Actions에서 아래와 같이 .jar 파일을 복사하고 있었음:
scp build/libs/yeoyu-seat-be-0.0.1-SNAPSHOT.jar ubuntu@ec2:~/app.jar
그런데 EC2 내에 이미 app.jar이라는 디렉토리가 존재해 있었고,
이 상태에서 scp를 수행하면 ~/app.jar/파일명.jar로 복사됨.
즉, Dockerfile에서
COPY app.jar app.jar로 복사하면 디렉토리를 복사하게 됨 →java -jar app.jar실행 실패 → 컨테이너 종료 → Nginx 연결 실패 → 502 오류 발생
deploy.yml 수정 - app.jar 디렉토리 삭제 추가- name: EC2 app.jar 디렉토리 삭제
run: |
echo "🧹 EC2의 app.jar 디렉토리 삭제"
ssh -o StrictHostKeyChecking=no ${{ secrets.EC2_USER }}@${{ secrets.EC2_HOST }} "rm -rf ~/app.jar"
이 스텝을 scp 전에 삽입하여, app.jar이 디렉토리로 존재하지 않도록 강제 삭제 처리!
.jar 파일을 다시 정확히 전송.jar 파일이 정상적으로 보이더라도, 디렉토리로 존재할 수도 있다는 점을 처음 알게 되었음