AWS

[AWS] ECR, Github Actions Push

sungchilll 2025. 1. 2. 21:04

2024.12.30

개발환경

[MacOS]

Github Actions

Docker

Spring Boot

AWS ECR

AWS ECR

  • AWS에서 관리하는 image registry 서비스
  • DockerHub와 비슷한 서비스
  • AWS에서 제공하는 서비스를 활용하는 경우 액세스가 비교적 안전하고 간편

ECR 생성

우측 상단 리포지토리 생성 클릭

 

프라이빗 리포지토리 생성

 

Github Actions Push yml

name: Build and Push Docker Image To AWS ECR
on:
  push: 
    branches:
      - main

jobs:
  build-push-image:
    runs-on: ubuntu-latest

    steps:
      - name: Checkout
        uses: actions/checkout@v4
      - name: Set up JDK 17
        uses: actions/setup-java@v4
        with:
          java-version: "17"
          distribution: "temurin"
          cache: maven
      - name: Make application-prod.properties
        run: |
          mkdir -p ./src/main/resources
          cd ./src/main/resources
          touch ./application.properties
          echo "${{ secrets.PROPERTIES }}" > ./application.properties
        shell: bash

      - name: Build with Maven
        run: mvn -B package --file pom.xml

      - name: Naming jar file
        run: mv ./target/*.jar ./target/app.jar

      - name: Check jar file
        run: ls ./target

      - name: Set up Docker Buildx
        uses: docker/setup-buildx-action@v3

      - name: Configure AWS credentials
        uses: aws-actions/configure-aws-credentials@v4
        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 (Private)
        run: |
          aws ecr get-login-password --region ap-northeast-2 | docker login --username AWS --password-stdin ${{ secrets.ECR_PRIVATE_ID }}.dkr.ecr.ap-northeast-2.amazonaws.com

      - name: Build Docker image
        run: |
          docker build -t ${{ secrets.ECR_PRIVATE_ID }}.dkr.ecr.ap-northeast-2.amazonaws.com/${{ secrets.ECR_PRIVATE_REPOSITORY }}:latest .

      - name: Push Docker image to Amazon ECR
        run: |
          docker push ${{ secrets.ECR_PRIVATE_ID }}.dkr.ecr.ap-northeast-2.amazonaws.com/${{ secrets.ECR_PRIVATE_REPOSITORY }}:latest

 

생성 완료

Secrets 변수 등록

Secrtes 변수
PROPERTIES application.properties
AWS_ACCESS_KEY_ID AWS Access key ID
AWS_SECRET_ACCESS_KEY AWS Secret access Key
ECR_PRIVATE_ID URI 앞 숫자 값
ECR_PRIVATE_REPOSITORY URI 뒤 레포지토리 이름

AWS AccessKeys


 

반응형