From 2a9dbab9095f79cf46127a5f1112194fce6ad04e Mon Sep 17 00:00:00 2001 From: c4lyp5o Date: Tue, 7 Nov 2023 16:54:22 +0800 Subject: [PATCH] fix: Dockerfile prep for deployment --- Dockerfile | 31 ++++++++++++++++++------------- 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/Dockerfile b/Dockerfile index 87defa2..c259b16 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,21 +1,26 @@ -# Stage 1: Build the application -FROM node:slim AS builder +# pull the Node.js Docker image +FROM node:lts-alpine -WORKDIR /app +# update the package index +RUN apk update && apk add --no-cache tzdata -COPY package*.json ./ -RUN npm cache clean --force -RUN npm install +# set timezone data +ENV TZ=Asia/Kuala_Lumpur -COPY ./ ./ +# create app directory +WORKDIR /usr/src/app -# Stage 2: Create the production image -FROM node:slim +# bundle app source +COPY . . -WORKDIR /app - -COPY --from=builder /app . +# install node_modules, build client React JS, delete node_modules server side, prune image for production, clear npm cache, delete unnecessary folder client side +RUN npm install && \ + npm run build && \ + npm cache clean --force && \ + rm -rf src +# app run on port 3000 EXPOSE 3000 -CMD ["npm", "run", "start-app"] +# run the server +CMD ["npm", "start"] \ No newline at end of file