✅ 프론트 Dockerfile

# 1단계: 빌드 환경 설정
FROM node:18-alpine AS builder

# 작업 디렉토리 설정
WORKDIR /app

# 의존성 파일 복사 및 설치
COPY package.json package-lock.json ./
RUN npm install

# 애플리케이션 소스 코드 복사
COPY . .

# Next.js 애플리케이션 빌드
RUN npm run build

# 2단계: 프로덕션 환경 설정
FROM node:18-alpine

# 작업 디렉토리 설정
WORKDIR /app

# 빌드된 파일 복사
COPY --from=builder /app/package.json ./
COPY --from=builder /app/node_modules ./node_modules
COPY --from=builder /app/.next ./.next
COPY --from=builder /app/public ./public

# 포트 노출
EXPOSE 3000

# Next.js 애플리케이션 시작
CMD ["npm", "start"]

✅ 백 Dockerfile

# gradle:7.3.1-jdk17 이미지를 기반으로 함
FROM gradle:8.7.0-jdk17

# 작업 디렉토리 설정
WORKDIR /home/gradle/project

# Spring 소스 코드를 이미지에 복사
COPY . .

# gradle 빌드 시 proxy 설정을 gradle.properties에 추가
#RUN echo "systemProp.http.proxyHost=krmp-proxy.9rum.cc\\nsystemProp.http.proxyPort=3128\\nsystemProp.https.proxyHost=krmp-proxy.9rum.cc\\nsystemProp.https.proxyPort=3128" > /root/.gradle/gradle.properties

# gradle 초기화
RUN gradle init

EXPOSE 8080

# gradle wrapper를 프로젝트에 추가
RUN gradle wrapper

# gradlew를 이용한 프로젝트 필드
RUN chmod +x gradlew

# gradlew를 이용한 프로젝트 필드
RUN ./gradlew clean build -x test

# 빌드 결과 jar 파일을 실행 -> docker run을 할경우 실행되는 명령어들을 해주는 것
CMD ["java", "-jar", "/home/gradle/project/build/libs/api-server-0.0.1-SNAPSHOT.jar"]