[해결] Docker: exec /usr/openjdk-11/bin/java: exec format error

chancehee·2023년 9월 12일
0
post-thumbnail

[ 상황 ]

Mac OS(m1)에서 빌드한 도커 이미지가 Ubuntu 20.04(LTS)에서 실행시킬 때, 에러 발생
-> 즉, 로컬환경에서 잘 돌아가던 도커 컨테이너가, AWS EC2 환경에서 돌아가지 않고 에러

[ 원인 ]

운영체제 플랫폼에 따라 도커 이미지 빌드시 영향을 끼치기 때문이다.
m1 맥북 docker build image의 기본 설정은 arm64 이다.

즉, 운영체제에 맞게 docker build를 수행해야 한다.

[ 해결 ]

우선 기존에 빌드했던 이미지가 있다면, 이미지 제거
docker rmi -f [이미지 이름] : 이미지 제거
docker ps image : 이미지 목록 확인
docker buildx build --push --platform linux/amd64 -t [이미지 이름] . : OS에 맞게 도커 이미지 빌드 & 푸시

  • 필자는 Docker Hub에 이미지를 push하고, pull을 통해 사용하기 위해 push 명령어 사용함
  • Dockerfile이 있는 경로에서 build 명령어를 수행했기 때문에 현재 경로 . 명시함

참고
https://stackoverflow.com/questions/75089403/docker-exec-usr-local-openjdk-11-bin-java-exec-format-error

0개의 댓글