배포 진행중 발생한 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 |