반응형
ECS cluster를 통해 service 배포 중
exec format error 이라는 에러가 떴다.
Mac M1 환경에서 빌드된 이미지를 통해 Task definition 을 진행하여 서비스를 배포시도를 하고 있는 상황이다.
(git 으로 code push 시 Github Action 을 통한 이미지 자동 빌드 및 ECR로 push)
오류 원인
- Task Definition 시 운영체제/아키텍처 선택 오류
Fargate 는 x86 아키텍쳐만 지원하므로 Mac M1 환경에서 이미지를 빌드할 때
아래와 같은 코드 수정이 필요하다.
#FROM node:16 //x86
FROM --platform=linux/amd64 node:16-alpine // ARM64
임시로 도커 빌드 시 platform 을 명시하여 이미지 빌드 시 x86 아키텍처에도 적용될 수 있도록 한다.
이외의 방법으로는
로컬에서 빌드된 이미지를 통한 태스크 정의 = ARM64 아키텍처 적용
Github Action 에서 빌드된 이미지를 통한 태스크 정의 = x86 아키텍처 적용
위 방법이 있다.
코드에서 platform 을 명시해주는것이 현재 실습환경에서는 더 유용한 방법 이다.
반응형
'클라우드 > AWS' 카테고리의 다른 글
[Mac OS]API Gataway 와 서버리스 어플리케이션 (0) | 2023.02.04 |
---|---|
[Mac OS]AWS Certificate Manager, Route53, CloudFront (AWS ACM, ACM 인증서, Route 53) (0) | 2023.01.25 |
[Mac OS]AWS ECS를 이용한 컨테이너화 된 앱 배포(WAS, AWS ECR, AWS ECS) (1) | 2023.01.20 |
[Mac OS]Git Action 을 통한 ECR 레지스트리 Push 자동화 (0) | 2023.01.19 |
[Mac OS]컨테이너화 이미지 & mongodb 실행 (docker-compose.yaml) (0) | 2023.01.18 |