From f1e40b19d54e2b1a4c0a53b2a78d47c121f17ee8 Mon Sep 17 00:00:00 2001 From: Nalin Angrish Date: Fri, 5 Jul 2024 22:37:44 +0530 Subject: [PATCH] Changes in dockerfile + allowed users --- Dockerfile | 73 ++++++++++------------------------------------------- src/auth.js | 11 ++++---- 2 files changed, 20 insertions(+), 64 deletions(-) diff --git a/Dockerfile b/Dockerfile index ed2b58a..4d1cf97 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,67 +1,22 @@ -FROM node:lts-alpine AS base +FROM node:lts-slim -# Install dependencies only when needed -FROM base AS deps # Check https://github.com/nodejs/docker-node/tree/b4117f9333da4138b03a546ec926ef50a31506c3#nodealpine to understand why libc6-compat might be needed. -RUN apk add --no-cache libc6-compat +# RUN apk add --no-cache libc6-compat WORKDIR /app -# Install dependencies based on the preferred package manager -COPY package.json yarn.lock* package-lock.json* pnpm-lock.yaml* ./ -RUN \ - if [ -f yarn.lock ]; then yarn --frozen-lockfile; \ - elif [ -f package-lock.json ]; then npm ci; \ - elif [ -f pnpm-lock.yaml ]; then corepack enable pnpm && pnpm i --frozen-lockfile; \ - else echo "Lockfile not found." && exit 1; \ - fi +# Deploying the app on port 3000 +# EXPOSE 3000 +# Install dependencies +# Wanted to continue using npm but idk why that doesnt work as intended so have to try yarn +COPY package.json . +# COPY package-lock.json . +# RUN npm install +RUN yarn install -# Rebuild the source code only when needed -FROM base AS builder -WORKDIR /app -COPY --from=deps /app/node_modules ./node_modules +# Copy the code files and build the nextjs app COPY . . +RUN npm run build -# Next.js collects completely anonymous telemetry data about general usage. -# Learn more here: https://nextjs.org/telemetry -# Uncomment the following line in case you want to disable telemetry during the build. -# ENV NEXT_TELEMETRY_DISABLED 1 - -RUN \ - if [ -f yarn.lock ]; then yarn run build; \ - elif [ -f package-lock.json ]; then npm run build; \ - elif [ -f pnpm-lock.yaml ]; then corepack enable pnpm && pnpm run build; \ - else echo "Lockfile not found." && exit 1; \ - fi - -# Production image, copy all the files and run next -FROM base AS runner -WORKDIR /app - -ENV NODE_ENV production -# Uncomment the following line in case you want to disable telemetry during runtime. -# ENV NEXT_TELEMETRY_DISABLED 1 - -RUN addgroup --system --gid 1001 nodejs -RUN adduser --system --uid 1001 nextjs - -COPY --from=builder /app/public ./public - -# Set the correct permission for prerender cache -RUN mkdir .next -RUN chown nextjs:nodejs .next - -# Automatically leverage output traces to reduce image size -# https://nextjs.org/docs/advanced-features/output-file-tracing -COPY --from=builder --chown=nextjs:nodejs /app/.next/standalone ./ -COPY --from=builder --chown=nextjs:nodejs /app/.next/static ./.next/static - -USER nextjs - -EXPOSE 3000 - -ENV PORT 3000 - -# server.js is created by next build from the standalone output -# https://nextjs.org/docs/pages/api-reference/next-config-js/output -CMD HOSTNAME="0.0.0.0" node server.js \ No newline at end of file +# Run the server! +CMD ["npm", "start"] \ No newline at end of file diff --git a/src/auth.js b/src/auth.js index e982dce..c0219ac 100644 --- a/src/auth.js +++ b/src/auth.js @@ -4,7 +4,12 @@ import GoogleProvider from "next-auth/providers/google"; // import Admin from "./models/admin"; import { NextResponse } from "next/server"; -const allowedEmails=["meadityaraj0001@gmail.com","2021ceb1007@iitrpr.ac.in","softcom@iitrpr.ac.in"] +const allowedEmails=[ + "meadityaraj0001@gmail.com", + "2021ceb1007@iitrpr.ac.in", + "2023meb1360@iitrpr.ac.in", + "softcom@iitrpr.ac.in" +]; export const { handlers, signIn, signOut, auth } = NextAuth({ providers: [ @@ -24,10 +29,6 @@ export const { handlers, signIn, signOut, auth } = NextAuth({ const found=allowedEmails.find((email)=>email===email) if(!found)return false; - // await connectMongoDB(); - // const alreadyUserexists = await Admin.findOne({ email }); - // if (!alreadyUserexists) return false; - // await Admin.create({email,name,image}) return NextResponse.json({ message: "welcome back" }); } catch (error) {