GithubAction에서 master 푸시시 ECR에 이미지를 푸시

aws ECR에 리포지토리 만들기


  • aws 콘솔에 로그인
  • 검색 창에서 "ecr"이라고 검색하면 "Amazon Container Services"라는 것이 나오므로 클릭
  • 리포지토리 만들기

  • 이번에는 "test"라는 이름으로 저장소를 만듭니다 (이름은 모든 이름으로 괜찮습니다!)


  • Github Actions를 이동하는 액세스 키, 비밀 키 획득


  • aws 콘솔에 로그인
  • 검색 창에서 "iam"으로 검색
  • 사용자 추가를 클릭

    4. 이름에 「github-actions」(이름은 임의의 이름으로 괜찮습니다!) 액세스의 종류는 「프로그램에 의한 액세스」에 체크해 다음에

    5.「기존의 정책을 직접 첨부」를 선택→「AmazonEC2ContainerRegistryPowerUser」라고 검색하면 권한이 나오므로 이쪽을 체크

  • 나머지는 모두 다음에 괜찮습니다. 그렇다면 다음과 같은 화면이되므로 액세스 키와 비밀 키를 적어 둡니다.


  • Github에 비밀 키 등록


  • github의 해당 리포지토리에 다음 세 가지 변수 추가
  • AWS_ACCESS_KEY_ID (이전에 획득 한 액세스 키)
  • AWS_SECRET_ACCESS_KEY (이전에 획득 한 비밀 키)
  • AWS_ECR_REPO_NAME (ECR로 만든 리포지토리 이름 *이 경우 test)

    위와 같이 변수를 지정하여 ${{ secrets.キー名 }}로 설정하여 환경 변수를 사용할 수 있습니다
  • .

    github actions의 yml 만들기



    .github/workflows/config.yml
    name: Build and Push
    
    on:
      push:
        branches:
          - master
    
    jobs:
      build-and-push:
        runs-on: ubuntu-18.04
        timeout-minutes: 300
    
        steps:
          - uses: actions/checkout@v1
    
          - 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-1
    
          - name: Login to Amazon ECR
            id: login-ecr
            uses: aws-actions/amazon-ecr-login@v1
    
          - name: Build, tag, and push image to Amazon ECR
            env:
              ECR_REGISTRY: ${{ steps.login-ecr.outputs.registry }}
              ECR_REPOSITORY: ${{ secrets.AWS_ECR_REPO_NAME }}
            run: |
              docker build -t $ECR_REGISTRY/$ECR_REPOSITORY:latest .
              docker push $ECR_REGISTRY/$ECR_REPOSITORY:latest
    

    확인!


  • aws ECR에 리포지토리 만들기
  • Github Actions를 이동하는 액세스 키, 비밀 키 가져 오기
  • Github에 비밀 키 등록
  • github actions의 yml 만들기

  • 상기 4점이 생기면
    github로 푸시 해 보면 github actions가 움직임 리포지토리에 image가 푸시되면 완료됩니다.


    참고문헌



    GitHub Action에서 Docker 컨테이너를 빌드하고 Amazon ECR에 저장

    좋은 웹페이지 즐겨찾기