GitHub 작업을 사용하여 AWS ECR에 컨테이너 이미지 배포
전제 조건:
1단계: ECR 리포지토리 생성
AWS CLI를 사용하여 AWS에서 리소스를 생성하거나 관리하려면 프로그래밍 방식 액세스 권한이 있는 IAM 사용자 계정을 사용해야 합니다. 그러기 위해서는 retrieve your access key ID and secret access key을 한 다음 아래와 같이
AWS_ACCESS_KEY_ID
및 AWS_SECRET_ACCESS_KEY
환경 변수를 설정해야 합니다.export AWS_ACCESS_KEY_ID=<YOUR_ACCESS_KEY_ID>
export AWS_SECRET_ACCESS_KEY=<YOUR_SECRET_ACCESS_KEY>
AWS CLI에서 ECR에 리포지토리를 생성하려면 AWS CLI가 구성된 머신에서 다음을 입력하여 리포지토리를 생성합니다.
aws ecr create-repository --repository-name name-of- repository --region name-of-region
예를 들어:
aws ecr create-repository --region eu-west-1 --repository-name node-repo
모든 것이 잘 진행되면 다음과 같은 결과가 표시됩니다.
{
"repository": {
"repositoryArn": "arn:aws:ecr:eu-west-1:XXXXXXXXXX:repository/test",
"registryId": "790783553687",
"repositoryName": "test",
"repositoryUri": "XXXXXXXXXX.dkr.ecr.eu-west-1.amazonaws.com/test",
"createdAt": "2022-09-28T14:01:20+01:00",
"imageTagMutability": "MUTABLE",
"imageScanningConfiguration": {
"scanOnPush": false
},
"encryptionConfiguration": {
"encryptionType": "AES256"
}
}
}
출력에서
repositoryName
를 기록해 둡니다. 프로세스 후반에 필요합니다.2단계: AWS 자격 증명을 비밀로 추가합니다.
위의 env 변수로 내보낸 것과 동일한 자격 증명을 사용하여 두 개의 새로운 보안 비밀
AWS_ACCESS_KEY_ID
및 AWS_SECRET_ACCESS_KEY,
를 만듭니다.3단계: GitHub Action First 워크플로 만들기
GitHub 리포지토리의 작업 탭으로 이동하고 이 워크플로 설정 버튼을 클릭하여 워크플로를 생성합니다.
main.yml이라는 새 워크플로 파일이 .github/workflows 디렉터리 아래에 자동으로 생성됩니다. 채워진 콘텐츠를 아래 내용으로 바꿉니다.
name: "Build and push to ECR"
on:
push:
branches:
- master
pull_request:
jobs:
BuildAndPushImageToECR:
name: "Build and Push to ECR"
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
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 }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: eu-west-1 // region you want to push the image to
- 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 }}
ECR_REPOSITORY: "your-ecr-repo-name"
IMAGE_TAG: v1
run: |
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"
ECR_REPOSITORY
를 이전에 생성한 리포지토리의 이름으로 바꿉니다.축하합니다! 메인 브랜치에 대한 풀 요청이 있을 때마다 컨테이너 이미지를 빌드하고 AWS ECR에 푸시하는 GitHub를 성공적으로 생성했습니다.
다음 시간까지 🖤
Reference
이 문제에 관하여(GitHub 작업을 사용하여 AWS ECR에 컨테이너 이미지 배포), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/aws-builders/deploying-a-container-image-to-aws-ecr-using-a-github-action-k33텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)