golang과 Dockerfile을 이용하여 만든 Docker container image를 저장하는 용도로 쓰인다.

도커 이미지를 생성하기 위해서는 “go.mod”라는 파일과 main.go, Dockerfile이라는 파일들이 필요하다.

이를 AWS 터미널에 명령어를 입력해서 파일들을 생성한 후 각각에 파일에 해당하는 코드들을 집어넣고

명령어를 작성하면 이미지를 생성할 수 있다.

디렉토리 생성 및 파일 생성

# 1. 작업 디렉토리 생성 및 이동
mkdir my-go-app 
cd my-go-app

# 2. Go 모듈 초기화 (go.mod 생성 and golang 설치)
sudo yum install golang -y
go mod init my-go-app

# 3. 애플리케이션 코드 작성 (main.go 생성)
cat <<EOF > main.go
	{코드내용}
EOF

# 4. Dockerfile 생성
cat <<EOF > Dockerfile
	{코드내용}
EOF

ECR 리포지토리 생성 및 로그인

→ 리포지토리(이미지를 저장할 수 있는 공간)을 생성 → 출입증을 발급받는다.

# 1. ECR 리포지토리 생성 (리전은 본인에 맞게 수정, 예: ap-northeast-2)
aws ecr create-repository --repository-name my-go-app --region ap-northeast-2

# 2. ECR 로그인 인증 토큰 가져오기 (Docker가 ECR에 접근할 수 있게 함)
# 아래 명령어에서 <AWS_ACCOUNT_ID>는 본인의 12자리 계정 ID로 바꿔야 합니다.
aws ecr get-login-password --region ap-northeast-2 | docker login --username AWS --password-stdin <AWS_ACCOUNT_ID>.dkr.ecr.ap-northeast-2.amazonaws.com

이미지 빌드 및 태그 지정

# 1. 도커 이미지 빌드
docker build -t my-go-app .

# 2. 이미지에 ECR 주소 태그 달기 (버전을 v1으로 지정)
docker tag my-go-app:latest <AWS_ACCOUNT_ID>.dkr.ecr.ap-northeast-2.amazonaws.com/my-go-app:v1

ECR로 이미지 푸시 (Push)

# 이미지 푸시
docker push <AWS_ACCOUNT_ID>.dkr.ecr.ap-northeast-2.amazonaws.com/my-go-app:v1