From 3abba9347b88fc9c06fe1815b98c24cd8dcbcdb2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nikola=20Dere=C5=BEi=C4=87?= Date: Tue, 9 Jan 2024 16:55:46 +0100 Subject: [PATCH] implemented Dockerfile --- .dockerignore | 6 ++++++ Dockerfile | 28 ++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 .dockerignore create mode 100644 Dockerfile diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..199c8c2 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,6 @@ +.dockerignore +.git +.vscode +.gitignore +node_modules +mongo \ No newline at end of file diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..a0357b0 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,28 @@ +# Stage 1: Build the Next.js project +FROM node:18 AS builder + +ENV WORKDIR=/app +WORKDIR /app + +# copy all the soruce code +COPY . . + +# installing dependencies +RUN npm i && npm cache clean --force + +# building app +RUN npm run build + +# Stage 2: Run the Next.js server +FROM gcr.io/distroless/nodejs:18 as prod-image + +WORKDIR /app + +COPY --from=builder /app/package.json /app/package-lock.json ./ +# installing production dependencies +RUN npm i --verbose --only=production && npm cache clean --force + +COPY --from=builder /app/.next ./.next +COPY ./public /app/public + +CMD ["npm", "start"]