기존 이미지

IMAGE                                           ID             DISK USAGE   CONTENT SIZE   EXTRA
grafana/grafana:latest                          70d9599b186c        993MB          210MB    U
grafana/loki:latest                             92bd5700577b        177MB         41.5MB    U
grafana/promtail:latest                         8dcfdf466da0        280MB         66.4MB    U
kokomen-client-client:latest                    ec3efc978bcb       3.86GB          833MB    U
kokomen-client-kokomen-nest-server-dev:latest   ebc91b85f091       3.02GB          698MB    U
nginx:latest                                    553f64aecdc3        225MB         59.8MB    U
prom/node-exporter:latest                       3ac34ce007ac       41.6MB         13.1MB    U
prom/prometheus:latest                          49214755b615        507MB          134MB    U
samhap/kokomen-interview-api:dev                eadc9118503d        917MB          316MB    U
samhap/kokomen-payment-api:dev                  69617da98410        834MB          276MB    U
samhap/kokomen-payment-internal:dev             f508a659b11f        839MB          279MB    U
valkey/valkey:8.0.1                             c5d4f082b76d        200MB         50.5MB    U

기존 Dockerfile

FROM node:22-alpine AS builder

ENV NODE_ENV=production

WORKDIR /app

RUN corepack enable

COPY . .

ARG NEXT_PUBLIC_BASE_URL
ARG NEXT_PUBLIC_API_BASE_URL
ARG NEXT_PUBLIC_POSTHOG_KEY
ARG NEXT_PUBLIC_POSTHOG_HOST
ARG SENTRY_AUTH_TOKEN
ARG NEXT_PUBLIC_GOOGLE_CLIENT_ID
ARG NEXT_PUBLIC_CDN_BASE_URL
ARG NEXT_PUBLIC_V2_API_BASE_URL
ARG NEXT_PUBLIC_V3_API_BASE_URL
ARG NEXT_PUBLIC_GRAPHQL_URL
ARG NEXT_PUBLIC_NOTIFICATION_API_BASE_URL
ENV NEXT_PUBLIC_V2_API_BASE_URL=$NEXT_PUBLIC_V2_API_BASE_URL
ENV NEXT_PUBLIC_V3_API_BASE_URL=$NEXT_PUBLIC_V3_API_BASE_URL
ENV NEXT_PUBLIC_GRAPHQL_URL=$NEXT_PUBLIC_GRAPHQL_URL
ENV NEXT_PUBLIC_BASE_URL=$NEXT_PUBLIC_BASE_URL
ENV NEXT_PUBLIC_API_BASE_URL=$NEXT_PUBLIC_API_BASE_URL
ENV NEXT_PUBLIC_POSTHOG_KEY=$NEXT_PUBLIC_POSTHOG_KEY
ENV NEXT_PUBLIC_POSTHOG_HOST=$NEXT_PUBLIC_POSTHOG_HOST
ENV NEXT_PUBLIC_NOTIFICATION_API_BASE_URL=$NEXT_PUBLIC_NOTIFICATION_API_BASE_URL
ENV SENTRY_AUTH_TOKEN=$SENTRY_AUTH_TOKEN
ENV NEXT_PUBLIC_CDN_BASE_URL=$NEXT_PUBLIC_CDN_BASE_URL
ENV NEXT_PUBLIC_GOOGLE_CLIENT_ID=$NEXT_PUBLIC_GOOGLE_CLIENT_ID

RUN yarn install

WORKDIR /app/apps/client

RUN yarn types:build

RUN NODE_OPTIONS="--max-old-space-size=4096" yarn build
RUN yarn sitemap

WORKDIR /app
CMD ["yarn", "client:prod"]