diff --git a/.env.prod.sample b/.env.prod.sample index cfed308..e87b468 100644 --- a/.env.prod.sample +++ b/.env.prod.sample @@ -1,8 +1,7 @@ DATABASE_URL="mysql://root:fbOgZ6Xxn5VXBYihjqygRXyaK6ZUgKL6@learnsteam-db/learnsteam_quiz" -//DATABASE_URL="mysql://learnsteam:fbOgZ6Xxn5VXBYihjqygRXyaK6ZUgKL6@jongyeob.com/learnsteam_quiz" NEXTAUTH_URL=https://learnsteam-quiz.jongyeob.com NEXT_PUBLIC_HOST=https://learnsteam-quiz.jongyeob.com -NEXT_PUBLIC_API_ENDPOINT=https://learnsteam-quiz-api.jongyeob.com +NEXT_PUBLIC_API_ENDPOINT=https://learnsteam-quiz.jongyeob.com NEXTAUTH_SECRET=dd87d8220ed9535d3152910f62ca40fb8ae292ac527e9528425118406aebbce0 KAKAO_CLIENT_ID=14f63a8e91c4e0fe88bc40e3ff348233 \ No newline at end of file diff --git a/docker/prod/Dockerfile b/docker/prod/Dockerfile index 3b68014..85a8b2c 100644 --- a/docker/prod/Dockerfile +++ b/docker/prod/Dockerfile @@ -1,22 +1,30 @@ -FROM node:alpine AS base +FROM node:21-alpine AS base FROM base AS deps -RUN apk update && apk add --no-cache libc6-compat +RUN apk add --no-cache libc6-compat WORKDIR /app -COPY package.json ./ -RUN npm install +COPY package.json yarn.lock ./ +ENV NEXT_TELEMETRY_DISABLED 0 +RUN yarn --frozen-lockfile + FROM base AS builder WORKDIR /app -COPY .env.prod.sample .env.production -COPY --from=deps /app/node_modules ./node_modules COPY . . +COPY .env.prod.sample .env +ENV NEXT_TELEMETRY_DISABLED 0 +RUN yarn upgrade RUN npx prisma generate -RUN npm run build +RUN yarn build +RUN npm prune --production +COPY ./script/start.sh . +RUN chmod +x start.sh FROM alpine AS runner -RUN apk add --no-cache nodejs +RUN apk add --no-cache nodejs npm +RUN npm install npx -g WORKDIR /app + ENV NODE_ENV production RUN addgroup --system --gid 1001 nodejs RUN adduser --system --uid 1001 nextjs @@ -26,9 +34,12 @@ COPY --from=builder --chown=nextjs:nodejs /app/public ./public COPY --from=builder --chown=nextjs:nodejs /app/package.json ./package.json COPY --from=builder --chown=nextjs:nodejs /app/.next/standalone ./ COPY --from=builder --chown=nextjs:nodejs /app/.next/static ./.next/static +COPY --from=builder --chown=nextjs:nodejs /app/node_modules ./node_modules +COPY --from=builder --chown=nextjs:nodejs /app/prisma ./prisma +COPY --from=builder --chown=nextjs:nodejs /app/start.sh . USER nextjs EXPOSE 3100 ENV PORT 3100 -CMD ["node", "server.js"] \ No newline at end of file +CMD ["sh", "start.sh"] \ No newline at end of file