작성
·
340
0
구글링해서 나온건 다따라해봤는데 ,...안돼네요 강사님 하신거랑 똑같이했는데 메시지는 키값을못찾는다고나오는거같은데...
이거 방법이 없을까요
답변 3
0
이 에러 상황을 만나신 분들을 위해 해결방법 정리해드리겠습니다!
Github Actions 코드에서 변수명을 일치하지 않게 작성해서 에러가 발생하는 경우가 많습니다.
key: ${{ secrets.EC2_PRIVATE_KEY }}
host: ${{ secrets.EC2_HOST }}
username: ${{ secrets.EC2_USER_NAME }}
port: ${{ secrets.SSH_PORT }}
예를 들면, Github Actions 코드에서는 secrets.EC2_USER_NAME
이라고 작성했는데,
Git Secret에 등록할 때는 EC2_USERNAME
으로 작성해버려서 문제가 발생하는 경우가 있습니다!
이와 같이 변수명에서 틀린 부분이 없는 지 체크해보시면 좋을 것 같아요:D
0
전체코드입니다
name: Deploy To EC2
on:
push:
branches:
- main
jobs:
Deploy:
runs-on: ubuntu-latest
steps:
- name: github repository에 올린 파일들을 불러오기
uses: actions/checkout@v4
- name: JDK 17버전 설치
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: 17
- name: application.yml 만들기
run: echo "${{ secrets.APPLICATION_PROPERTIES }}" > ./src/main/resources/application.yml
- name: 테스트 및 빌드
run: |
chmod +x gradlew
./gradlew clean build
- name: AWS Resource 에 접근할수있게 AWS credentials 설정
uses: aws-actions/configure-aws-credentials@v4
with:
aws-region: ap-northeast-2
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
- name: ECR에 로그인하기
id: login-ecr
uses: aws-actions/amazon-ecr-login@v2
- name: Docker 이미지 생성
run: docker build -t instagram .
# 쩜 이라는건 현재경로에있는 도커파일을 기반으로 이미지파일을 생성한다는 의미
- name: Docker 이미지에 Tag붙이기
run: docker tag instagram ${{ steps.login-ecr.outputs.registry }}/instagram:latest
#steps.login-ecr.에 결과값(output)에 registry라는게있는거임
#주소에 :latest 라는 태그를 다는거임
- name: ECR에 Docker이미지 Push
run: docker push ${{ steps.login-ecr.outputs.registry }}/instagram:latest
# - name: 빌드된 파일 이름 변경하기
# run: mv ./build/libs/*SNAPSHOT.jar ./project.jar
# - name: SCP로 EC2에 빌드된 파일 전송!!
# uses: appleboy/scp-action@v0.1.7
# with:
# host: ${{secrets.EC2_HOST }}
# username: ${{ secrets.EC2_USER_NAME }}
# key: ${{ secrets.EC2_PRIVATE_KEY }}
# source: project.jar
# target: /home/ubuntu/instagram/tobe
- name: SSH 로 EC2접속
uses: appleboy/ssh-action@v0.1.4
with:
key: ${{ secrets.EC2_PRIVATE_KEY }}
host: ${{ secrets.EC2_HOST }}
username: ${{ secrets.EC2_USER_NAME }}
port: ${{ secrets.SSH_PORT }}
script_stop: true
script: |
docker stop instagram || true
docker rm instagram || true
docker pull ${{ steps.login-ecr.outputs.registry }}/instagram:latest
docker run -d --name instagram -p 8080:8080 ${{ steps.login-ecr.outputs.registry }}/instagram:latest
우철님! ssh-action의 버전 문제 때문에 발생한 문제일 수도 있겠네요!
uses: appleboy/ssh-action@v1.0.3
위의 버전으로 수정 한 번 해보시겠어요~??
0
안녕하세요 우철님!
디버깅을 위해 작성하신 Github Actions 코드 복사해서 그대로 한 번 보여주실 수 있을까요~??
같이 디버깅 도와드리겠습니다!
안녕하세요 우철님!
보여주신 Github actions 코드에서는 크게 문제가 되는 부분이 있어보이진 않네요!
지금 발생한 에러 메시지로 봤을 때는 appleboy/ssh-action의 코드 부분에서
key
,host
,username
,port
에서 잘못입력한 게 있을 경우발생할 수도 있는 에러로 보입니다!
혹시 이 부분도 잘 값이 등록되어 있는 지 체크 한 번 해봐주실 수 있을까요 ?
혹시 이걸 체크했는데도 잘 안 되신다면 아래 카톡 링크로 카톡 한 번 부탁드릴게요~~
https://open.kakao.com/o/sHdY8yrg