AWS

Github Actions를 통한 ECR에 이미지 푸시하기

Lee_Mc 2024. 6. 6. 15:48

서비스의 도커 이미지 로컬 테스트를 마치고, Github Action을 이용하여 CI/CD 구성을 했습니다.

 

Github Actions를 통한 ECR에 이미지 푸시 구성

 

● workflow 수행을 위한 설정 파일 구성

파일은 환경구성 →  빌드 → ECR Image Push 순으로 진행됩니다

 

1. 개발할 때 이용한 JDK를 설치하고 Gradle 빌드할 수 있도록 권한을 설정합니다.

      - name: Checkout
        uses: actions/checkout@v1
      
      - name: Set up JDK 21
        uses: actions/setup-java@v3
        with:
          java-version: '21'
          distribution: 'zulu'
          
      - name: Grant execute permission for gradlew
        run: chmod +x ./gradlew

 

 

2. 빌드를 해줍니다.

- name: Grant execute permission for gradlew
  run: chmod +x ./gradlew

 

 

3.aws 로그인을 위한 정보를 가져와 로그인을 합니다.

      - name: Configure AWS credentials
        uses: aws-actions/configure-aws-credentials@v1
        with:
          aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
          aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
          aws-region: ap-northeast-2

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

 

Access-key와 Secret-Access-key의 경우 노출을 금지하고 별도 관리가 필수 이기 때문에 레포지토리 비밀 변수로 등록을 해줍니다

AWS -> IAM -> 내 보안 자격 증명 -> 액세스키 생성 ->. csv 파일 확인 (별도 관리 필수 - 재확인할 수 없음)

 

4. 이미지를 빌드합니다

      - name: Build, tag, and push image to Amazon ECR
        id: build-image
        env:
          ECR_REGISTRY: ${{ steps.login-ecr.outputs.registry }}
          ECR_REPOSITORY: user-repository(레포지토리명)
          IMAGE_TAG: ${{ github.sha }}
        run: |
          docker build -t $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG -t $ECR_REGISTRY/$ECR_REPOSITORY:latest .
          docker push $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG
          docker push $ECR_REGISTRY/$ECR_REPOSITORY:latest
          echo "::set-output name=image::$ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG"


가장 최신에 push 한 이미지는 이미지 뒤에 latest가 붙고 이전이미지는 latest가 빠지도록 구성하였습니다

 

이미지 푸시 결과 ECR Repository에서 Image 확인이 가능합니다.

 

 

 

 

 

 

 

 

 

[자료] 해당 사이트를 참고하였습니다

 

GitHub 액션과 테라폼을 사용하여 Docker 이미지를 빌드하고 Amazon ECR로 푸시합니다. - AWS 권장 가이

이 페이지에 작업이 필요하다는 점을 알려 주셔서 감사합니다. 실망시켜 드려 죄송합니다. 잠깐 시간을 내어 설명서를 향상시킬 수 있는 방법에 대해 말씀해 주십시오.

docs.aws.amazon.com