✅ 프론트 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"]