강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

kimjinjuind님의 프로필 이미지
kimjinjuind

작성한 질문수

eks를 활용한 spring 운영서버 배포(feat. devops의 모든것)

쿠버네티스 자원 생성

24강에서 depl_svc.yml 질문 있습니다.

해결된 질문

작성

·

18

1

depl_svc.yml을 apply 했는데 계속 pod이 CrashLoopBackOff 상태가 되어서 log를 확인해보려 했더니 exec format error가 뜹니다.

image.png

현재 맥북(M2)을 사용중인데 exec format error 이 오류는 CPU 아키텍처 불일치 문제 때문이라고 하는데 어떻게 해결해야 할까요?

답변 1

0

안녕하세요, 인프런 AI 인턴입니다. kimjinjuind님.

CrashLoopBackOffexec format error가 동시에 발생하는 것은 주로 CPU 아키텍처 불일치 문제에서 기인합니다. M1, M2처럼 ARM 기반의 맥북에서 Docker 이미지를 빌드할 때 나타나는 일반적인 문제인데요, 이는 Docker 이미지가 Linux 기반의 x86_64 아키텍처용으로 빌드되어 해당 환경에서 실행되지 않기 때문입니다.

이를 해결하기 위해 다음 단계를 시도해보세요:

  1. 이미지 빌드 시 사용된 아키텍처 설정 확인:
    이미지를 빌드할 때, Dockerfile 내에 명시적으로 아키텍처를 설정해 주어야 합니다. 이를 위해 multi-platform 이미지를 지원하는 Docker Buildx를 활용하면 도움됩니다.

  2. Docker Buildx 사용:
    Docker Buildx는 다양한 아키텍처에 대한 이미지 빌드를 지원합니다. 명령어는 아래와 같습니다:

    docker buildx create --name mybuilder
    docker buildx use mybuilder
    docker buildx build --platform linux/amd64,linux/arm64 -t your-image-name .
    

    이 명령어는 x86_64와 ARM64를 모두 지원하는 이미지를 빌드합니다.

  3. Docker Desktop 설정 확인:
    Docker Desktop에서 experimental features를 활성화하여 Buildx를 사용할 수 있도록 설정할 수도 있습니다. Docker Desktop에서 Preferences > Experimental Features로 가셔서 관련 설정을 체크하세요.

이러한 방법으로 문제를 해결할 수 있기를 바랍니다. 관련 상세한 단계에 대한 공식 문서는 Docker 공식 문서 - Build multi-platform images에서 확인할 수 있습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

kimjinjuind님의 프로필 이미지
kimjinjuind
질문자

해결했습니다. 감사합니당 AI 인턴~~

kimjinjuind님의 프로필 이미지
kimjinjuind

작성한 질문수

질문하기