문제 상황
- AWS ECR 에 push 하고 ubuntu 운영체제를 가진 EC2 에서 이미지를 받아 docker-compose up
을 실행 했을 때 아래와 같은 문제가 발생 했다.
exec user process caused exec format error
가 계속 출력되는 문제였는데 검색을 해봤을 때 대부분 쉘스크립트를 실행하는 과정에서 주로 발생하는 것 같았다. 그리고 해결하는 방법은 #!/bin/bash
가 빠져서 발생한다고 말하고 있었지만 내 문제에선 해결 방법이 아니었다.
문제 발생 이유는 나는 현재 M1 실리콘 맥을 사용하고 있고 M1 환경에서 빌드 된 도커 이미지를 우분투에서 실행 시켜서 발생하는 문제였던 것이다. M1 에서 빌드된 이미지의 아키텍처를 ubuntu 에서 제대로 읽어 낼 수가 없었던 것이다.
해결 방법
해결 방법은 굉장히 간단하다. 옵션 값에 --platform linux/amd64 만 추가해서 빌드한다. 그리고 linux/amd64 로 빌드 된 이미지를 AWS ECR 에 푸쉬 하고 `docker-compose up 을 재실행 해주면 된다.
사용 예시
docker build -t api-server --platform linux/amd64 .
최근댓글