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 #성공