Search

Docker 에서 exec /usr/openjdk-17/bin/java: exec format error

Status
UPLOADING
Date
2024/02/14
Tags
Docker

1. 개요

도커 이미지를 빌드할 때는 운영체제 플랫폼이 중요한 역할을 합니다. 도키 이미지가 실행될 때 해당 운영체제의 시스템에 최적화 되어 있어야 하기 때문입니다.
저는 현재 M1 맥북을 사용하고 있는데 이 때 도커는 ARM64 아키텍쳐에 최적화된 도커 이미지를 생성합니다.
문제는 해당 이미지를 Ubuntu 서버에 올릴 때 발생합니다.
Ubuntu와 같은 운영체제는 x86_64 아키텍쳐를 사용합니다. 따라서 도커 이미지를 사용하고자 하는 운영체제에 맞춰 빌드를 진행해야 합니다.

2. 해결법

기존의 빌드 명령어는 다음과 같습니다.
docker build -t [username]/[repository 명] .
Java
복사
하지만 운영체제를 지정해줘야 한다면 다음 명령어를 사용하여 빌드해주어야 합니다.
docker buildx build --push --platform linux/amd64 -t [도커 사용자명]/[레포지토리 이름] .
Java
복사