DevOps/Docker

Docker 배포 시 아키텍처 불일치

감자개발자 2025. 5. 9. 16:00

로컬환경

(MacBook-M시리즈칩)

docker build -t gamzaa/product-service:1.0 .
docker push gamzaa/product-service:1.0

 

서버(Linux, amd64 아키텍처)에서 이미지 가져오려했는데 실패

docker pull gamzaa/product-service:1.0

# 1.0: Pulling from gamzaa/product-service
# no matching manifest for linux/amd64 in the manifest list entries

 

 

원인

CPU 아키텍처 불일치 문제

  • 로컬: Apple Silicon(M2) - ARM64
  • 서버: 일반적인 클라우드 서버 - AMD64(x84_64)

로컬에서 이미지를 빌드할 때 ARM64 아키텍처용으로 빌드함

AMD64 아키텍처 서버에서는 실행할 수 없음

 

해결 방법

Docker Buildx 사용

Docker Buildx
: 여러 플랫폼용 이미지를 동시에 빌드할 수 있는 Docker의 확장 기능, 한 번의 명령으로 여러 아키텍처를 지원하는 이미지 생성

 

docker buildx build --platform linux/amd64,linux/arm64 -t gamzaa/product-service:1.0 --push .
docker pull gamzaa/product-service:1.0 #성공