aws

spring boot, github action, docker 를 이용한 배포 자동화 (2)

cheesecrust1008 2024. 3. 20. 01:47

배포 진행중 발생한 error 

 

1. 우선 application.yml을 분리후 build 시 test에서 error가 발생하였는데, 이는 분리후 context를 찾지 못해서 였기 때문에 build시 test를 건너 뛰도록 CI 에서 -x test 옵션을 추가해주었습니다. 

- name: Build with Gradle Wrapper
  run: ./gradlew build -x test

 

2. docker script 실행시 

 

err: permission denied while trying to connect to the Docker daemon socket

 

error 가 발생 하였습니다. 

이는 Docker를 실행하는 사용자가 Docker 소켓에 대한 권한이 없을 때 발생합니다.

따라서

 

 sudo chmod 666 /var/run/docker.sock

 

로 권한을 허용해 줍니다

 

3. ssh 접속 오류 

 

- name: Deploy
  uses: appleboy/ssh-action@master
  with:
    host: ${{ secrets.AWS_HOST }} # EC2 인스턴스 퍼블릭 DNS
    username: ubuntu
    key: ${{ secrets.AWS_ACCESS_SECRET_KEY }} # pem 키
    # 도커 작업
    script: |
      docker pull ${{ secrets.DOCKER_USERNAME }}/maru:latest
      
      CONTAINERS=$(docker ps -q)
      for CONTAINER in $CONTAINERS; do
        docker stop $CONTAINER
      done
      
      docker rm $(docker ps -aq)
      docker run -d --log-driver=syslog -p 8080:8080 -e SPRING_PROFILES_ACTIVE=prod ${{ secrets.DOCKER_USERNAME }}/maru:latest
      docker image prune -a -f

 

이 부분의 인스턴스에 ssh 접속 err 삽질만 3시간을 넘게 했다.

aws_host 에 퍼블릭 주소를 넣고 secret_key에 .pem key 를 넣었는데 

ssh: handshake failed: ssh: unable to authenticate, attempted methods [none publickey], no supported methods remain

이 err 가 계속 발생하였다. 

 

err 의 이유는 secret key에 .pem file의 내용을 넣어야하는데, 

-----BEGIN RSA PRIVATE KEY-----

이 부분을 넣지 않고 아래 내용 부터 넣어서 에러가 발생한 것이었다. 

 

4. naver oauth 관리자에게 문의 하세요 err

위의 에러를 모두 해결하면 배포가 성공하는데 성공 후 로그인시 설정 오류로 관리자에게 문의 하라는 err 가 발생했다. 

 

이는 callback url이 일치하지 않을 때 발생한다. 

설정을 꼭 다시 확인하자!!

 

callbackURL 설정시에는 앞에 주소:포트 작성 후 

/login/oauth2/code/

이 형식을 맞추어주어야 합니다.

 

5. application.yml 파일 분리시에 err

 

applicatoin.properties는 분리후 작성하여도 괜찮은데 .yml 파일의 경우에는 분리 작성후에는 main이 되는 application.yml에서 추가된 .yml 을 등록해주어야 합니다.

spring:
  profiles:
    include: oauth

 

이를 추가해주어야 합니다.

oauth 는 application-oauth.yml을 추가해주었기 때문입니다.

 

 

'aws' 카테고리의 다른 글

AWS RDS 접속  (0) 2024.03.29
spring boot, github action, docker 를 이용한 배포 자동화 (1)  (3) 2024.03.20
aws 리전  (0) 2022.09.18