From 343351e7d8fc837a9a021f374aa05a8e90cf9f99 Mon Sep 17 00:00:00 2001
From: jane <janejane101@ajou.ac.kr>
Date: Wed, 21 May 2025 14:24:18 +0900
Subject: [PATCH] final

---
 Dockerfile                                    | 29 +++++++++++++++++--
 docker-compose.yaml                           |  8 +++--
 .../procoding/myweb/service/MusicService.java |  8 -----
 3 files changed, 32 insertions(+), 13 deletions(-)

diff --git a/Dockerfile b/Dockerfile
index 864ea0b..89862cd 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,5 +1,28 @@
-FROM openjdk:17-jdk
+# 1단계: 빌드용 이미지
+FROM maven:3.9.6-eclipse-temurin-17 AS builder
+
 WORKDIR /app
-COPY target/*.jar app.jar
+
+# pom.xml과 소스 복사
+COPY pom.xml .
+COPY src ./src
+
+# 의존성 캐시를 위한 별도 단계
+RUN mvn dependency:go-offline
+
+# 애플리케이션 빌드
+RUN mvn clean package -DskipTests
+
+# 2단계: 실행용 이미지
+FROM eclipse-temurin:17-jdk
+
+WORKDIR /app
+
+# 빌드된 JAR 복사
+COPY --from=builder /app/target/myweb-0.0.1-SNAPSHOT.jar app.jar
+
+# 8080 포트 열기
 EXPOSE 8080
-ENTRYPOINT ["java","-jar","app.jar"]
+
+# Spring Boot 앱 실행
+ENTRYPOINT ["java", "-jar", "app.jar"]
diff --git a/docker-compose.yaml b/docker-compose.yaml
index 6dde03a..7995f6c 100644
--- a/docker-compose.yaml
+++ b/docker-compose.yaml
@@ -1,6 +1,10 @@
-version: "3.3"
+version: '3.8'
+
 services:
   myweb:
-    build: .
+    image: myweb
+    build:
+      context: .
+      dockerfile: Dockerfile
     ports:
       - "8080:8080"
diff --git a/src/main/java/com/ajou/procoding/myweb/service/MusicService.java b/src/main/java/com/ajou/procoding/myweb/service/MusicService.java
index 19c820c..7f5420d 100644
--- a/src/main/java/com/ajou/procoding/myweb/service/MusicService.java
+++ b/src/main/java/com/ajou/procoding/myweb/service/MusicService.java
@@ -23,8 +23,6 @@ public class MusicService {
     private final FavoriteRepository albumsRepo;
     private final RestTemplate restTemplate = new RestTemplate();
 
-
-    //iTunes API를 호출해 앨범 검색 결과(MusicList) 반환 
     public MusicList searchMusic(String name) {
         try {
             String url = String.format("https://itunes.apple.com/search?term=%s&entity=album", name);
@@ -39,21 +37,15 @@ public class MusicService {
         }
     }
 
-    
-    //DB에서 FavoriteMusic 목록을 조회 
     public List<FavoriteMusic> getLikes() {
         return albumsRepo.findAll();
     }
 
-    
-     //즐겨찾기 등록
-     //DTO -> 엔티티 변환 후 DB에 저장, 성공 시 1, 실패 시 0 반환
     public int saveFavorite(FavoriteMusicRequestDto favorite) {
         FavoriteMusic music = albumsRepo.save(favorite.toEntity());
         return (music != null) ? 1 : 0;
     }
 
-    // 존재하는지 확인 (없으면 예외 혹은 0 return 등)    
     public int deleteFavorite(String id) {
         try {
             if (albumsRepo.existsById(id)) {
-- 
GitLab