Github Action 과 Docker 을 통한 CI/CD 배포 (3)

justlikesh·2024년 5월 11일
0
post-thumbnail

실습과정은 좋은 글이있어서 인용하기로 하겠습니다. 이분은 자체적으로 Github Actions 를 활용해 Spring 자동 빌드를 완성하였고, 그 글을 기반으로 충분히 읽고 이해하여 실습하였습니다.
(1)
https://rnclf1005.tistory.com/entry/ASAC04Docker-Github-Actions%EC%9D%84-%ED%99%9C%EC%9A%A9%ED%95%9C-Spring-%EC%9E%90%EB%8F%99-%EB%B9%8C%EB%93%9C-Docker-Image-pushCI-1
(2)
https://rnclf1005.tistory.com/entry/ASAC04Docker-Github-Actions%EC%9D%84-%ED%99%9C%EC%9A%A9%ED%95%9C-Spring-%EC%9E%90%EB%8F%99-%EB%B0%B0%ED%8F%AC-Docker-Image-runCD-2

수동 실습 : Github Action 으로 CI + 개발자가 직접 CD을 하면서 느낀점은,

매번 배포할때마다 Github Action 이 빌드마치고 나의 Docker Hub 에 Docker 이미지를 Push 한 뒤 개발자가 EC2 에 직접 접속하여 수동으로 해당 이미지를 Pull 받아 Run 하기에는 너무 귀찮고, 번거롭습니다.

그래서 Github Action 이 빌드 후 나의 Docker Hub 에 Push 한 뒤에 Github Action 이 개발자 대신 EC2 에 접속하여 자동으로 해당 이미지를 Pull 받아 Run 하도록 하는것이 제일 수월하고 편할것입니다. 따라서 이번에는

자동 실습 : Github Action 으로 CI + CD 모두 자동 처리을 해보면서 만나게된 에러들을 저의 깃허브를통해 살펴볼까합니다.

언제나 그렇듯 에러는 개발자의 영원한 숙제가 아닐까싶습니다. 😄
에러메세지 보겠습니다.

프로그램 빌드 (Java 빌드) Java 및 Docker 빌드를 위한 환경 설정 에서 발생한 오류

      # (1) 프로그램 빌드 (Java 빌드) 3) Java 빌드
      - name: Spring Boot Build
        run: ./gradlew clean build

Github Action의 Repository secrets에서 AWS_SECRET_ACCESS_KEY 를 제대로 설정하지 않아서 발생한 오류이다. 올바른 값을 넣고 error을 해결하였다.

code 503


서버에서 스프링이 필요로하는 unbescape라이브러리를 maven서버로 부터 다운로드 받던중 503 Service Unavailable 발생. 우리의 문제가 아니라 외부 서버에 문제로 판단 됩니다.

CD : Docker 컨테이너 수행 Configure AWS Credentials - AWS 접근 권한 취득(IAM)에 대한오류


AWS IAM의 엑세스키 또는 비밀 엑세스키의 secrets가 제대로 설정되지 않아 생긴 오류이다. 변수를 제대로 설정하여 해결하였으며, 키와 같이 사소한것에서 잘못되면 꽤 많은 시간을 소모한단걸 깨달았다.
다음부터 주의할것

EC2 접속에러

Github Action 에서 EC2 SSH 접속하기 위해 ID/PW 를 사용하는데, ID/PW 가 잘못설정되어 접속이 끊긴 오류로 판단된다. 혹은 포트가 막혀있거나(SK 공유기로 인해) 아이피 설정을 잘못했거나 해당 아이피에서 나를 막은 경우로 판단된다.

profile
열심히 = 하기싫을때도 최선을 다하는것

0개의 댓글