blog

AWS - ECR 에 이미지 푸시하기

날짜: 2024-06-06

목록으로


처음 ECS 환경 세팅 시

스크립트

#!/bin/bash

set -e

# 변수 설정
REPO_NAME="my-ecr-repo"
ACCOUNT_ID=${AWS_ACCOUNT_ID:-"your-default-account-id"}
REGION="ap-northeast-2"

# 고유 식별자 생성 (예: 타임스탬프 + Git short hash)
TIMESTAMP=$(date +%Y%m%d%H%M%S)
GIT_HASH=$(git rev-parse --short HEAD)
UNIQUE_TAG="${TIMESTAMP}-${GIT_HASH}"

# ECR 리포지토리 생성 (이미 존재하는 경우 무시)
aws ecr create-repository --repository-name ${REPO_NAME} || true

# 도커 이미지 빌드
docker build -t ${REPO_NAME}:${UNIQUE_TAG} .

# ECR 로그인
aws ecr get-login-password --region ${REGION} | docker login --username AWS --password-stdin ${ACCOUNT_ID}.dkr.ecr.${REGION}.amazonaws.com

# 이미지에 태그 지정 (고유 식별자와 'latest' 모두)
docker tag ${REPO_NAME}:${UNIQUE_TAG} ${ACCOUNT_ID}.dkr.ecr.${REGION}.amazonaws.com/${REPO_NAME}:${UNIQUE_TAG}
docker tag ${REPO_NAME}:${UNIQUE_TAG} ${ACCOUNT_ID}.dkr.ecr.${REGION}.amazonaws.com/${REPO_NAME}:latest

# ECR에 이미지 푸시 (두 태그 모두)
docker push ${ACCOUNT_ID}.dkr.ecr.${REGION}.amazonaws.com/${REPO_NAME}:${UNIQUE_TAG}
docker push ${ACCOUNT_ID}.dkr.ecr.${REGION}.amazonaws.com/${REPO_NAME}:latest

echo "Image pushed successfully with tags:"
echo "  - ${ACCOUNT_ID}.dkr.ecr.${REGION}.amazonaws.com/${REPO_NAME}:${UNIQUE_TAG}"
echo "  - ${ACCOUNT_ID}.dkr.ecr.${REGION}.amazonaws.com/${REPO_NAME}:latest"

목록으로