본문 바로가기

항해99-플러스3기/[Chapter 1] CICD 배포 파이프라인 구축

[AWS - Docker] EC2 서버에 Docker Spring Boot 이미지 Run 플렛폼 오류

 

문제 개요.

Spring boot Health-check-router 를 만든 후 Docker images 를 말아 Docker Hub Repository 에 올렸다.

 

그후 EC2 에서 해당 Image 를 PULL 한 후 RUN 으로 image 실행을 진행하였다.

 

위 결과는 아래와 같다.

 

위 오류는 image 플렛폼 호환성 문제이다.

linus/arm64/v8. <====> linux/amd64/v3

 

필자는 MacOS 환경에서 Spring boot gradle build 와 docker build 로 Spring Boot image 를 만들었다.

 

Apple M1 칩에서 도커로 해당 이미지를 빌드할때 생성된 빌드 플랫폼이 EC2 서버와 호환이 안맞는 문제이다.

 

필자는 docker build 할때 단순하게 "docker build -t docker_hub_id/docker_img_name ." 로 빌드를 진행했다.

 

이부분이 문제이다.

 

mac 으로 docker build 를 할때는 조금더 디테일한 정보가 필요하다.

 

Gradle

docker build --platform [배포될 플렛폼 형태] --build-arg DEPENDENCY=build/dependency -t 도커허브아이디/도커허브 Repository 명 . (끝에 .까지가 명령어입니다.)

 

Maven

docker build --platform [배포될 플렛폼 형태] -t 도커허브아이디/도커허브 Repository 명 . (끝에 .까지가 명령어입니다.)

 

필자의 경우 배포될 플렛폼 형태는 : linux/amd64/v3 이다.

 

참고자료

https://sas-study.tistory.com/425

 

[Docker] 이미지 플랫폼 관련 에러(The requested image's platform (linux/arm64/v8) does not match the detected host plat

도커 허브를 통해 ec2 인스턴스에 배포하고자 하였음. Dockerfile 만들고. ec2에 도커 설치하고 systemctl docker start 로 도커를 딱 켜고! 도커 허브에서 이미지 땡겨받아서 run만 하면 되는데....! 다음과

sas-study.tistory.com