본문 바로가기

Kubernetes

[Kubernetes error]: exec usr bin java exec format error

mac m1에서 back-end application 개발 후, image를 만들어 docker hub에 push 한 경우

linux에서 그 image를 실행시키려면 "exec usr bin java exec format error" 에러가 발생한다. 

 

이를 해결하기 위해서는 buildx 라는 빌드 도구를 이용해 빌드를 진행한다.

buildx는 docker 19.03 이후 버전부터 사용이 가능하고 docker에 자동으로 포함된 플러그인이다. 

 

해결방안

먼저 빌드 시, platfrom을 지정해준다. 

 docker buildx ls를 사용하면 사용가능한 platfrom 종류가 나온다. (알아서 사용할 것으로 바꾸면 됨)

"--platform=linux/amd64,linux/arm64"처럼 여러 platfrom 종류를 적어도 된다. 

docker buildx build --platform=linux/amd64 -t govl6113/company:0.0.3 .

 

그 후, docker hub에 push 해준다. 

 docker push govl6113/company:0.0.3