diff --git a/Dockerfile b/Dockerfile index 864ea0b419da456c3c9365d9cdbae90780daebc4..89862cd86e6b7f430269a1509ded96b34ed34c97 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 6dde03a17bd8ddee9cc7d64a5e4257c11f989e61..7995f6cc0ecd29eeadbf7098d5f1227f10bff4a9 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 19c820c56577822dd33fbe3ba72d0a82b4ccd52c..7f5420d6f42e41e09127053ea5ab0e906c724577 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)) {