클라우드/AWS

[Mac OS]Git Action 을 통한 ECR 레지스트리 Push 자동화

chanstory 2023. 1. 19. 00:22
반응형

참고링크

https://github.com/aws-actions/amazon-ecr-login

 

GitHub - aws-actions/amazon-ecr-login: Logs into Amazon ECR with the local Docker client.

Logs into Amazon ECR with the local Docker client. - GitHub - aws-actions/amazon-ecr-login: Logs into Amazon ECR with the local Docker client.

github.com

 

주의사항!!!

코드에 민감 정보를 담지 않고 AWS 로그인을 위한 액세스키, 시크릿키 노출 금지 및 별도 관리 필수!!

 

 

1. Git 레포지토리 내 settings 메뉴 접속

2. Secrets and variables 접속

 

3. AWS Access Key ID, AWS Secret Access Key 입력 - AWS -> IAM -> 내 보안 자격 증명 -> 액세스키 생성 -> .csv 파일 확인 (별도 관리 필수 - 처음에 다운 받는것이 마지막 다운로드임)

 

- title 똑같이 작성

 

4. 다시 git 레포지토리로 돌아와서 -> Actions -> New workflow -> 원하는 work flow 선택하여 파일 .yml 파일 생성

 

5. 레포지토리 내 workflows 디렉토리 생성 확인

 

6. Action 및 이미지 자동 ECR push 소스 작성 - 필자 아직 소스 이해 제대로 못함

  => 배포를 제외한 이미지 자동 push

name: Dockerizing to Amazon ECR

on:
  push:       # 트리거
    branches:
      - main
      
env:
  AWS_REGION: ap-northeast-2        # set this to your preferred AWS region, e.g. us-west-1
  ECR_REPOSITORY: my_ecr            # set this to your Amazon ECR repository name
  

jobs:
  deploy:
    name: Deploy
    runs-on: ubuntu-latest
    environment: production

    steps:
    - name: Checkout
      uses: actions/checkout@v2

    - name: Configure AWS credentials
      uses: aws-actions/configure-aws-credentials@v1
      with:
        aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}          # 나의 ECR 정보
        aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
        aws-region: ${{ env.AWS_REGION }}

    - name: Login to Amazon ECR
      id: login-ecr
      uses: aws-actions/amazon-ecr-login@v1

    - name: Build, tag, and push image to Amazon ECR
      id: build-image
      env:
        ECR_REGISTRY: ${{ steps.login-ecr.outputs.registry }}
        IMAGE_TAG: ${{ github.sha }}
      run: |
        # Build a docker container and
        # push it to ECR so that it can
        # be deployed to ECS.
        docker build -t $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG .
        docker push $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG
        echo "::set-output name=image::$ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG"

 

7. 소스코드 git 으로 push 시 Action 동작 확인

- 오류 or 성공 여부 확인

 

8. ECR 내 이미지 push 결과 확인

 

 

** 오류

- action yml 파일이 들어있는 .github/workflows 디렉토리가 fastify 생성 파일들과 같이 있어야함

- fastify 파일들을 다른 디렉토리에 몰아두고 했더니 Action 실행중 build 에서 오류가 생김

- git hub action 파일이 Dockerfile을 찾지 못해서 생기는 오류임

- git hub action 파일에 Dockerfile 로 진입하는 명령어를 추가해줘도 해결됨

   (ex. cd helloworld)

반응형