diff --git a/Dockerfile b/Dockerfile index 87d42727..3e9dc9dc 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,10 +1,29 @@ -FROM gradle:8-jdk17 AS builder +FROM gradle:8-jdk17 AS dependencies WORKDIR /app + +COPY gradlew settings.gradle build.gradle.kts /app/ +COPY gradle /app/gradle +COPY service/build.gradle.kts /app/service/ +COPY tosspay-mock/build.gradle.kts /app/tosspay-mock/ +COPY common/log/build.gradle.kts /app/common/log/ +COPY common/persistence/build.gradle.kts /app/common/persistence/ +COPY common/types/build.gradle.kts /app/common/types/ +COPY common/utils/build.gradle.kts /app/common/utils/ +COPY common/web/build.gradle.kts /app/common/web/ + +RUN ./gradlew dependencies --no-daemon + +FROM dependencies AS builder +WORKDIR /app + COPY . . -RUN ./gradlew bootjar --no-daemon + +RUN ./gradlew :service:bootjar --no-daemon FROM amazoncorretto:17 WORKDIR /app EXPOSE 8080 -COPY --from=builder /app/build/libs/*.jar app.jar + +COPY --from=builder /app/service/build/libs/*.jar app.jar + ENTRYPOINT ["java", "-jar", "app.jar"] \ No newline at end of file diff --git a/frontend/.dockerignore b/frontend/.dockerignore index 3dd9fe5b..0fde024d 100644 --- a/frontend/.dockerignore +++ b/frontend/.dockerignore @@ -1,6 +1,18 @@ -node_modules .git -.DS_Store +.gitignore + +# Node.js +node_modules npm-debug.log + +# Build output +build dist -build \ No newline at end of file + +# Editor/OS specific +.vscode +.idea +.DS_Store + +# Environment variables +.env* \ No newline at end of file diff --git a/frontend/Dockerfile b/frontend/Dockerfile index cfc4d6d9..8afa50dd 100644 --- a/frontend/Dockerfile +++ b/frontend/Dockerfile @@ -1,18 +1,17 @@ -# Stage 1: Build the React app -FROM node:24 AS builder +FROM node:24-alpine AS builder WORKDIR /app -COPY package.json ./ -COPY package-lock.json ./ -RUN npm install --frozen-lockfile +COPY package.json package-lock.json ./ + +RUN npm ci COPY . . RUN npm run build +FROM nginx:1.27-alpine -# Stage 2: Serve with Nginx -FROM nginx:latest COPY --from=builder /app/dist /usr/share/nginx/html COPY nginx.conf /etc/nginx/conf.d/default.conf + EXPOSE 80 -CMD ["nginx", "-g", "daemon off;"] +CMD ["nginx", "-g", "daemon off;"] \ No newline at end of file