

./gradlew bootJar


FROM openjdk:17-jdk-slim
ARG JAR_FILE=app.jar
COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java", "-jar", "/app.jar"]
기반 이미지 지정 (Base Image)
openjdk:17-jdk-slim: Java 17이 설치된 가벼운 리눅스 이미지
이 위에 너의 Spring Boot 앱을 실행시킬 거야
✔️ 결국 이건 "Java가 실행 가능한 미니 리눅스 환경"이라고 보면 됨
변수 선언 (Build-time Argument)
Docker 빌드 시 쓸 변수 JAR_FILE 선언
기본값: app.jar
✔️ 빌드 시 --build-arg JAR_FILE=다른이름.jar로 값 바꿀 수도 있음
로컬 파일 복사 → 컨테이너 내부로
호스트의 ${JAR_FILE} 파일을 → 컨테이너 내부에 app.jar 이름으로 복사
✔️ 실제 경로는:
로컬의 ./app.jar → 컨테이너의 /app.jar
4. ENTRYPOINT ["java", "-jar", "/app.jar"]컨테이너 실행 시 기본으로 실행할 명령
이 컨테이너가 실행되면:java -jar /app.jar를 자동으로 실행함
✔️ 즉, Spring Boot 앱이 실행됨 (내장 Tomcat 포함)
Redis, MYSQL 등을 DOCKER로 안 띄워둔 가능성 있기 때문에 띄워두자

doucker Repository

후 app.zip으로 하고 s3에 업로드
이때 어떤 식으로 구상할건지에 따라 S2, S3로 나뉘어지고, Dockerrun의 json형태도 달라집니다!


그리고 그냥 넣고 툭툭 눌러주면 끝납니다!
5월 24, 2025 15:02:55 (UTC+9)
ERROR
[Instance: i-03a5a4fd4f3339ec5] Command failed on instance. Return code: 1 Output: Engine execution has encountered an error..
5월 24, 2025 15:02:52 (UTC+9)
ERROR
Instance deployment: 'Dockerrun.aws.json' in your source bundle specifies an unsupported version. Elastic Beanstalk only supports version 1 for non compose app and version 3 for compose app. The deployment failed.
✅ 의미:
Dockerrun.aws.json 파일의 AWSEBDockerrunVersion 필드에 지원되지 않는 버전을 넣었다는 뜻.
Elastic Beanstalk은 다음만 지원합니다:
Version 1: 단일 Docker 컨테이너 (Non-Docker Compose)
Version 3: 멀티 컨테이너 Docker (Docker Compose 기반)
이 경우 압축 툴이 특이한 방식으로 ZIP 포맷을 생성했을 가능성 (예: Bandizip 특유 옵션)이 있으므로 확인하고 다시 올려보기.
Bandizip 말고 Windows 기본 압축기(마우스 우클릭 → 보내기 → 압축(zip) 폴더)
저희는 docker-compose.yml을 사용하기 때문에
② Compose 방식으로 바꾸기 (선택)
docker-compose.yml을 계속 쓰고 싶다면:
EB 환경을 "Docker Compose (Multicontainer)" 플랫폼으로 다시 생성해야 해
그리고 Dockerrun.aws.json은 제거하고 .ebextensions, docker-compose.yml 기반으로 설정