애플이 Intel CPU에서 자체 개발한 m1, m2 CPU를 탑재하게 되면서 발생하는 도커 문제 해결법에 대해 정리해보고자 한다.
문제1: /bin/sh: exec format error 에러 발생시
애플 m1 CPU에서 이미지 빌드후 Intel CPU가 장착된 장비에서 도커를 수행할 때 발생되는 문제이다.
docker inspect {도커 이미지} | grep Architecture
검색된 결과를 보면 arm64
로 빌드되어있는것을 확인할 수 있는데, intel CPU에서 동작시키려먼 아키텍쳐가 amd64
이어야 한다.
해결방법:
도커 빌드시 platform을 지정하여 빌드한다.
docker build --platform linux/amd64 -t {빌드 태그} .
문제2: ERROR [internal] load metadata for [docker.io/library/openjdk:8u342-jre]
전체 에러 내용
ERROR [internal] load metadata for [docker.io/library/openjdk:8u342-jre](http://docker.io/library/openjdk:8u342-jre)
failed to solve with frontend dockerfile.v0: failed to create LLB definition: no match for platform in manifest sha256:667a15e7bc533a90fb39ddb7e5bed63162ac3c13a97e6c698bf4f139f51b7d33: not found
Dockerfile의 from 부분에 platform 지정
FROM --platform=linux/amd64 openjdk:8u342-jre
'OpenSource > Docker' 카테고리의 다른 글
[Docker] 이미지 다운로드를 위한 Proxy 설정 (0) | 2021.01.25 |
---|---|
[Docker] Dockerfile을 이용한 도커 이미지 선언하기 (0) | 2021.01.25 |